[INFO] fetching crate lisudoku-solver 0.1.28... [INFO] linting lisudoku-solver-0.1.28 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate lisudoku-solver 0.1.28 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate lisudoku-solver 0.1.28 [INFO] finished tweaking crates.io crate lisudoku-solver 0.1.28 [INFO] tweaked toml for crates.io crate lisudoku-solver 0.1.28 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate lisudoku-solver 0.1.28 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate lisudoku-solver 0.1.28 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 lz-str v0.2.1 [INFO] [stderr] Downloaded ntest_timeout v0.9.3 [INFO] [stderr] Downloaded combinations v0.1.0 [INFO] [stderr] Downloaded ntest_test_cases v0.9.3 [INFO] [stderr] Downloaded ntest v0.9.3 [INFO] [stderr] Downloaded insta v1.43.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 9211a6aef23bab207deb2513881fdccc09139062d7c3878100346593444925f0 [INFO] running `Command { std: "docker" "start" "-a" "9211a6aef23bab207deb2513881fdccc09139062d7c3878100346593444925f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9211a6aef23bab207deb2513881fdccc09139062d7c3878100346593444925f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9211a6aef23bab207deb2513881fdccc09139062d7c3878100346593444925f0", kill_on_drop: false }` [INFO] [stdout] 9211a6aef23bab207deb2513881fdccc09139062d7c3878100346593444925f0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] fc439569e0980271e2b820582bed074b80178603f899167fcd6f8755eebe4203 [INFO] running `Command { std: "docker" "start" "-a" "fc439569e0980271e2b820582bed074b80178603f899167fcd6f8755eebe4203", kill_on_drop: false }` [INFO] [stderr] Compiling winnow v0.7.11 [INFO] [stderr] Compiling indexmap v2.10.0 [INFO] [stderr] Checking similar v2.7.0 [INFO] [stderr] Checking lz-str v0.2.1 [INFO] [stderr] Checking combinations v0.1.0 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling ntest_test_cases v0.9.3 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.100 [INFO] [stderr] Compiling proc-macro-crate v3.3.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling ntest_timeout v0.9.3 [INFO] [stderr] Checking ntest v0.9.3 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.100 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.100 [INFO] [stderr] Checking wasm-bindgen v0.2.100 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking js-sys v0.3.77 [INFO] [stderr] Checking console_error_panic_hook v0.1.7 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking insta v1.43.1 [INFO] [stderr] Checking web-sys v0.3.77 [INFO] [stderr] Checking serde-wasm-bindgen v0.4.5 [INFO] [stderr] Checking gloo-utils v0.1.7 [INFO] [stderr] Checking lisudoku-solver v0.1.28 (/opt/rustwide/workdir) [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/checker.rs:382:37 [INFO] [stdout] | [INFO] [stdout] 382 | for cell in self.get_area_cells(&area) { [INFO] [stdout] | ^^^^^ help: change this to: `area` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/solver/checker.rs:448:24 [INFO] [stdout] | [INFO] [stdout] 448 | if value != 0 && value % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `value.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/checker.rs:480:52 [INFO] [stdout] | [INFO] [stdout] 480 | let valid = TopBottomCandidates::new(true).run(&self).is_empty(); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/solver/logical_solver/naked_singles.rs:65:11 [INFO] [stdout] | [INFO] [stdout] 65 | areas.into_iter().map(|area| area.clone()).collect(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `areas.into_iter().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/naked_singles.rs:66:11 [INFO] [stdout] | [INFO] [stdout] 66 | &solver, [INFO] [stdout] | ^^^^^^^ help: change this to: `solver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/naked_singles.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | &solver, [INFO] [stdout] | ^^^^^^^ help: change this to: `solver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver/logical_solver/hidden_singles.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | / return self.build_grid_solution_step( [INFO] [stdout] 34 | | cells, [INFO] [stdout] 35 | | vec![ value ], [INFO] [stdout] 36 | | vec![ area.clone() ], [INFO] [stdout] 37 | | &solver, [INFO] [stdout] 38 | | ) [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] 33 ~ self.build_grid_solution_step( [INFO] [stdout] 34 + cells, [INFO] [stdout] 35 + vec![ value ], [INFO] [stdout] 36 + vec![ area.clone() ], [INFO] [stdout] 37 + &solver, [INFO] [stdout] 38 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/solver/logical_solver/hidden_singles.rs:30:24 [INFO] [stdout] | [INFO] [stdout] 30 | cells.extend(other_cells.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 30 - cells.extend(other_cells.into_iter()); [INFO] [stdout] 30 + cells.extend(other_cells); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/hidden_singles.rs:37:11 [INFO] [stdout] | [INFO] [stdout] 37 | &solver, [INFO] [stdout] | ^^^^^^^ help: change this to: `solver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/thermo_steps.rs:14:77 [INFO] [stdout] | [INFO] [stdout] 14 | let lower_bounds = ThermoCandidates::find_thermo_lower_bounds(solver, &thermo); [INFO] [stdout] | ^^^^^^^ help: change this to: `thermo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/thermo_steps.rs:15:77 [INFO] [stdout] | [INFO] [stdout] 15 | let upper_bounds = ThermoCandidates::find_thermo_upper_bounds(solver, &thermo); [INFO] [stdout] | ^^^^^^^ help: change this to: `thermo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/thermo_steps.rs:29:15 [INFO] [stdout] | [INFO] [stdout] 29 | &solver, [INFO] [stdout] | ^^^^^^^ help: change this to: `solver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver/logical_solver/candidates.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | / return vec![ [INFO] [stdout] 26 | | SolutionStep { [INFO] [stdout] 27 | | rule: self.get_rule(), [INFO] [stdout] 28 | | cells: vec![], [INFO] [stdout] ... | [INFO] [stdout] 35 | | ] [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] 25 ~ vec![ [INFO] [stdout] 26 + SolutionStep { [INFO] [stdout] 27 + rule: self.get_rule(), [INFO] [stdout] 28 + cells: vec![], [INFO] [stdout] 29 + values: vec![], [INFO] [stdout] 30 + areas: vec![], [INFO] [stdout] 31 + affected_cells: vec![], [INFO] [stdout] 32 + candidates: Some(candidates), [INFO] [stdout] 33 + invalid_state_reason: None, [INFO] [stdout] 34 + } [INFO] [stdout] 35 + ] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver/logical_solver/candidates.rs:40:59 [INFO] [stdout] | [INFO] [stdout] 40 | solver.candidates = step.candidates.as_ref().unwrap().into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver/logical_solver/candidates.rs:41:22 [INFO] [stdout] | [INFO] [stdout] 41 | .map(|row| row.into_iter().map(|col| [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/thermo_candidates.rs:19:65 [INFO] [stdout] | [INFO] [stdout] 19 | let lower_bounds = Self::find_thermo_lower_bounds(solver, &thermo); [INFO] [stdout] | ^^^^^^^ help: change this to: `thermo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/thermo_candidates.rs:20:65 [INFO] [stdout] | [INFO] [stdout] 20 | let upper_bounds = Self::find_thermo_upper_bounds(solver, &thermo); [INFO] [stdout] | ^^^^^^^ help: change this to: `thermo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicitly performing saturating subtraction [INFO] [stdout] --> src/solver/logical_solver/thermo_candidates.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | / if current_max > 0 { [INFO] [stdout] 84 | | current_max -= 1; [INFO] [stdout] 85 | | } [INFO] [stdout] | |_________^ help: try: `current_max = current_max.saturating_sub(1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `step` after checking its variant with `is_some` [INFO] [stdout] --> src/solver/logical_solver/x_wing.rs:19:20 [INFO] [stdout] | [INFO] [stdout] 18 | if step.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = step` [INFO] [stdout] 19 | return vec![ step.unwrap() ] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `step` after checking its variant with `is_some` [INFO] [stdout] --> src/solver/logical_solver/x_wing.rs:25:20 [INFO] [stdout] | [INFO] [stdout] 24 | if step.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = step` [INFO] [stdout] 25 | return vec![ step.unwrap() ] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/solver/logical_solver/xy_wing.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | let z = *candidates.iter().filter(|&&value| value != x).next().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `candidates.iter().find(|&&value| value != x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `step` after checking its variant with `is_some` [INFO] [stdout] --> src/solver/logical_solver/common_peer_elimination.rs:26:24 [INFO] [stdout] | [INFO] [stdout] 25 | if step.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = step` [INFO] [stdout] 26 | return vec![ step.unwrap() ] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/common_peer_elimination.rs:57:22 [INFO] [stdout] | [INFO] [stdout] 57 | &common_peers, &values [INFO] [stdout] | ^^^^^^^ help: change this to: `values` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/common_peer_elimination.rs:83:113 [INFO] [stdout] | [INFO] [stdout] 83 | let common_peers_with_values: Vec = solver.filter_cells_with_subset_candidates(&common_peers, &values); [INFO] [stdout] | ^^^^^^^ help: change this to: `values` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/solver/logical_solver/common_peer_elimination.rs:100:57 [INFO] [stdout] | [INFO] [stdout] 100 | let entry = changed_cells.entry(*peer_cell).or_insert(HashSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/sum_candidates.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | &self, Box::new(SumCombinationsLogic::new(cells, sum)) [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/solver/logical_solver/sum_candidates.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new<'a>(cells: &'_ Vec, sum: u32) -> SumCombinationsLogic { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/solver/logical_solver/kropki_chain_candidates.rs:58:11 [INFO] [stdout] | [INFO] [stdout] 58 | / if steps_by_cell.contains_key(&cell) { [INFO] [stdout] 59 | | steps_by_cell.entry(cell) [INFO] [stdout] 60 | | .and_modify(|entry| { [INFO] [stdout] 61 | | if step.values.len() > entry.values.len() { [INFO] [stdout] ... | [INFO] [stdout] 66 | | steps_by_cell.insert(cell, step); [INFO] [stdout] 67 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 58 ~ if let std::collections::hash_map::Entry::Vacant(e) = steps_by_cell.entry(cell) { [INFO] [stdout] 59 + e.insert(step); [INFO] [stdout] 60 + } else { [INFO] [stdout] 61 + steps_by_cell.entry(cell) [INFO] [stdout] 62 + .and_modify(|entry| { [INFO] [stdout] 63 + if step.values.len() > entry.values.len() { [INFO] [stdout] 64 + *entry = step; [INFO] [stdout] 65 + } [INFO] [stdout] 66 + }); [INFO] [stdout] 67 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/logical_solver/kropki_chain_candidates.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 107 | let invalid_candidates = solver.cell_candidates_diff(&cells, valid_candidates); [INFO] [stdout] | ------------------------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 108 | [INFO] [stdout] 109 | invalid_candidates [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 107 ~ [INFO] [stdout] 108 | [INFO] [stdout] 109 ~ solver.cell_candidates_diff(&cells, valid_candidates) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/kropki_chain_candidates.rs:120:58 [INFO] [stdout] | [INFO] [stdout] 120 | solver, Box::new(KropkiChainCombinationsLogic::new(&cells)) [INFO] [stdout] | ^^^^^^ help: change this to: `cells` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/solver/logical_solver/common_peer_elimination_kropki.rs:40:50 [INFO] [stdout] | [INFO] [stdout] 40 | kropki_dot_indices.into_iter().map(|index| Area::KropkiDot(index)).collect::>(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Area::KropkiDot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/solver/logical_solver/top_bottom_candidates.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | if !extra_cells.is_empty() && !(self.checker_validity && extra_cells.len() < crt_cells.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(extra_cells.is_empty() || self.checker_validity && extra_cells.len() < crt_cells.len())` [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/logical_solver/top_bottom_candidates.rs:59:10 [INFO] [stdout] | [INFO] [stdout] 59 | if !extra_cells.is_empty() && !(self.checker_validity && extra_cells.len() < next_cells.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(extra_cells.is_empty() || self.checker_validity && extra_cells.len() < next_cells.len())` [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: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/solver/logical_solver/top_bottom_candidates.rs:39:7 [INFO] [stdout] | [INFO] [stdout] 39 | (0..solver.constraints.grid_size).into_iter().collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..solver.constraints.grid_size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::Rev>` [INFO] [stdout] --> src/solver/logical_solver/top_bottom_candidates.rs:41:7 [INFO] [stdout] | [INFO] [stdout] 41 | (0..solver.constraints.grid_size).rev().into_iter().collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..solver.constraints.grid_size).rev()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/solver/logical_solver/top_bottom_candidates.rs:78:65 [INFO] [stdout] | [INFO] [stdout] 78 | fn get_extra_cells(&self, cells1: &Vec, cells2: &Vec) -> 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] 78 - fn get_extra_cells(&self, cells1: &Vec, cells2: &Vec) -> Vec { [INFO] [stdout] 78 + fn get_extra_cells(&self, cells1: &Vec, cells2: &[CellPosition]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver/logical_solver/top_bottom_candidates.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | cells1.into_iter().filter(|cell| { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/solver/logical_solver/combinations/cell_combinations_runner.rs:105:7 [INFO] [stdout] | [INFO] [stdout] 105 | / if self.combinations_logic.should_check_value_conflict() { [INFO] [stdout] 106 | | if self.state.affected_by[index].bitand(self.state.used_candidates_at[value as usize]) != 0 { [INFO] [stdout] 107 | | continue [INFO] [stdout] 108 | | } [INFO] [stdout] 109 | | } [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] 105 ~ if self.combinations_logic.should_check_value_conflict() [INFO] [stdout] 106 ~ && self.state.affected_by[index].bitand(self.state.used_candidates_at[value as usize]) != 0 { [INFO] [stdout] 107 | continue [INFO] [stdout] 108 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/combinations/cell_combinations_runner.rs:111:68 [INFO] [stdout] | [INFO] [stdout] 111 | if !self.combinations_logic.is_value_valid_candidate_in_cell(&self, value, index) { [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver/logical_solver/arrow_candidates.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | return max_arrow_sum >= self.circle_sum_min && min_arrow_sum <= self.circle_sum_max [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] 126 - return max_arrow_sum >= self.circle_sum_min && min_arrow_sum <= self.circle_sum_max [INFO] [stdout] 126 + max_arrow_sum >= self.circle_sum_min && min_arrow_sum <= self.circle_sum_max [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/solver/logical_solver/arrow_candidates.rs:122:56 [INFO] [stdout] | [INFO] [stdout] 122 | let min_arrow_sum = self.arrow_cells_sum + value + cell_count_left as u32 * 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(cell_count_left as u32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ArrowCombinationLogicFactory` [INFO] [stdout] --> src/solver/logical_solver/arrow_candidates.rs:159:3 [INFO] [stdout] | [INFO] [stdout] 159 | / pub fn new() -> ArrowCombinationLogicFactory { [INFO] [stdout] 160 | | ArrowCombinationLogicFactory { [INFO] [stdout] 161 | | cache: HashMap::new(), [INFO] [stdout] 162 | | } [INFO] [stdout] 163 | | } [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] 158 + impl<'a> Default for ArrowCombinationLogicFactory { [INFO] [stdout] 159 + fn default() -> Self { [INFO] [stdout] 160 + Self::new() [INFO] [stdout] 161 + } [INFO] [stdout] 162 + } [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/solver/logical_solver/advanced_candidates.rs:12:54 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn eliminate_combinations(&self, combinations: &Vec>, cells: &Vec) -> CellEliminationsResult { [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] 12 - pub fn eliminate_combinations(&self, combinations: &Vec>, cells: &Vec) -> CellEliminationsResult { [INFO] [stdout] 12 + pub fn eliminate_combinations(&self, combinations: &[Vec], cells: &Vec) -> CellEliminationsResult { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/logical_solver/phistomefel_ring.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 34 | let steps = self.match_sets(solver, set1, set2); [INFO] [stdout] | ------------------------------------------------ unnecessary `let` binding [INFO] [stdout] 35 | [INFO] [stdout] 36 | steps [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 34 ~ [INFO] [stdout] 35 | [INFO] [stdout] 36 ~ self.match_sets(solver, set1, set2) [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/solver/logical_solver/phistomefel_ring.rs:56:55 [INFO] [stdout] | [INFO] [stdout] 56 | fn match_sets_ordered(&self, solver: &Solver, set1: &Vec, set2: &Vec) -> 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] 56 - fn match_sets_ordered(&self, solver: &Solver, set1: &Vec, set2: &Vec) -> Vec { [INFO] [stdout] 56 + fn match_sets_ordered(&self, solver: &Solver, set1: &[CellPosition], set2: &Vec) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/logical_solver/nishio_forcing_chains.rs:45:32 [INFO] [stdout] | [INFO] [stdout] 45 | temp_solver.apply_rule(&mut Candidates.run(&temp_solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 45 - temp_solver.apply_rule(&mut Candidates.run(&temp_solver).first().unwrap()); [INFO] [stdout] 45 + temp_solver.apply_rule(&Candidates.run(&temp_solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/nishio_forcing_chains.rs:45:32 [INFO] [stdout] | [INFO] [stdout] 45 | temp_solver.apply_rule(&mut Candidates.run(&temp_solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&temp_solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/renban_candidates.rs:28:60 [INFO] [stdout] | [INFO] [stdout] 28 | let invalid_candidates = solver.cell_candidates_diff(&cells, valid_candidates); [INFO] [stdout] | ^^^^^^ help: change this to: `cells` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver/logical_solver/renban_candidates.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | return cell_count_left as u32 >= range_left_to_fill [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] 75 - return cell_count_left as u32 >= range_left_to_fill [INFO] [stdout] 75 + cell_count_left as u32 >= range_left_to_fill [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/palindrome_values.rs:29:15 [INFO] [stdout] | [INFO] [stdout] 29 | &solver, [INFO] [stdout] | ^^^^^^^ help: change this to: `solver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/palindrome_candidates.rs:33:71 [INFO] [stdout] | [INFO] [stdout] 33 | let extra_candidates: Vec = candidates_left.difference(&candidates_right).sorted().copied().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `candidates_right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/palindrome_candidates.rs:44:72 [INFO] [stdout] | [INFO] [stdout] 44 | let extra_candidates: Vec = candidates_right.difference(&candidates_left).sorted().copied().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `candidates_left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/adhoc_naked_set.rs:67:44 [INFO] [stdout] | [INFO] [stdout] 67 | let peer_index = *node_indices.get(&special_peer).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `special_peer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/solver/logical_solver/adhoc_naked_set.rs:137:7 [INFO] [stdout] | [INFO] [stdout] 137 | peers = peers ^ (1 << v); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `peers ^= (1 << v)` [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/solver/logical_solver/adhoc_naked_set.rs:138:7 [INFO] [stdout] | [INFO] [stdout] 138 | banned = banned | (1 << v); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `banned |= (1 << v)` [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: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/logical_solver.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 118 | / let res = SudokulogicalSolveResult { [INFO] [stdout] 119 | | solution_type, [INFO] [stdout] 120 | | solution: Some(self.grid.to_vec()), [INFO] [stdout] 121 | | steps: solution_steps.clone(), [INFO] [stdout] 122 | | invalid_state_reason: None, [INFO] [stdout] 123 | | }; [INFO] [stdout] | |______- unnecessary `let` binding [INFO] [stdout] 124 | [INFO] [stdout] 125 | res [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 118 ~ [INFO] [stdout] 119 | [INFO] [stdout] 120 ~ SudokulogicalSolveResult { [INFO] [stdout] 121 + solution_type, [INFO] [stdout] 122 + solution: Some(self.grid.to_vec()), [INFO] [stdout] 123 + steps: solution_steps.clone(), [INFO] [stdout] 124 + invalid_state_reason: None, [INFO] [stdout] 125 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/logical_solver.rs:94:42 [INFO] [stdout] | [INFO] [stdout] 94 | let rule_check = self.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 94 - let rule_check = self.apply_rule(&mut step); [INFO] [stdout] 94 + let rule_check = self.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/logical_solver.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 164 | let steps = self.run_techniques(candidate_validity_techniques); [INFO] [stdout] | --------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 165 | [INFO] [stdout] 166 | steps [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 164 ~ [INFO] [stdout] 165 | [INFO] [stdout] 166 ~ self.run_techniques(candidate_validity_techniques) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/logical_solver.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 185 | let steps = self.run_techniques(nongrid_techniques); [INFO] [stdout] | ---------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 186 | [INFO] [stdout] 187 | steps [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 185 ~ [INFO] [stdout] 186 | [INFO] [stdout] 187 ~ self.run_techniques(nongrid_techniques) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver.rs:195:33 [INFO] [stdout] | [INFO] [stdout] 195 | let steps = technique.run(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver.rs:223:38 [INFO] [stdout] | [INFO] [stdout] 223 | let rule_check = technique.apply(&step, self); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/logical_solver.rs:235:23 [INFO] [stdout] | [INFO] [stdout] 235 | self.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 235 - self.apply_rule(&mut step); [INFO] [stdout] 235 + self.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver.rs:235:23 [INFO] [stdout] | [INFO] [stdout] 235 | self.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/solver/logical_solver.rs:246:42 [INFO] [stdout] | [INFO] [stdout] 246 | fn get_affected_by_cells(&self, cells: &Vec, values: &HashSet) -> 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] 246 - fn get_affected_by_cells(&self, cells: &Vec, values: &HashSet) -> Vec { [INFO] [stdout] 246 + fn get_affected_by_cells(&self, cells: &[CellPosition], values: &HashSet) -> Vec { [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/solver/logical_solver.rs:270:85 [INFO] [stdout] | [INFO] [stdout] 270 | fn get_affected_by_area_cells_cells(&self, area_cells: &Vec, cells: &Vec, values: &HashSet) -> V... [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] 270 - fn get_affected_by_area_cells_cells(&self, area_cells: &Vec, cells: &Vec, values: &HashSet) -> Vec { [INFO] [stdout] 270 + fn get_affected_by_area_cells_cells(&self, area_cells: &Vec, cells: &[CellPosition], values: &HashSet) -> Vec { [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/solver/logical_solver.rs:302:38 [INFO] [stdout] | [INFO] [stdout] 302 | fn find_common_areas(&self, cells: &Vec) -> 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] 302 - fn find_common_areas(&self, cells: &Vec) -> Vec { [INFO] [stdout] 302 + fn find_common_areas(&self, cells: &[CellPosition]) -> Vec { [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/solver/logical_solver.rs:349:46 [INFO] [stdout] | [INFO] [stdout] 349 | fn any_cells_with_candidates(&self, cells: &Vec, values: &HashSet) -> 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] 349 - fn any_cells_with_candidates(&self, cells: &Vec, values: &HashSet) -> bool { [INFO] [stdout] 349 + fn any_cells_with_candidates(&self, cells: &[CellPosition], values: &HashSet) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver.rs:350:78 [INFO] [stdout] | [INFO] [stdout] 350 | cells.iter().any(|cell| !self.candidates[cell.row][cell.col].is_disjoint(&values)) [INFO] [stdout] | ^^^^^^^ help: change this to: `values` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/solver/logical_solver.rs:353:52 [INFO] [stdout] | [INFO] [stdout] 353 | fn any_cells_with_other_candidates(&self, cells: &Vec, values: &HashSet) -> 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] 353 - fn any_cells_with_other_candidates(&self, cells: &Vec, values: &HashSet) -> bool { [INFO] [stdout] 353 + fn any_cells_with_other_candidates(&self, cells: &[CellPosition], values: &HashSet) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver.rs:354:76 [INFO] [stdout] | [INFO] [stdout] 354 | cells.iter().any(|cell| self.candidates[cell.row][cell.col].difference(&values).count() > 0) [INFO] [stdout] | ^^^^^^^ help: change this to: `values` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/solver/logical_solver.rs:359:5 [INFO] [stdout] | [INFO] [stdout] 359 | / match area { [INFO] [stdout] 360 | | &Area::Row(row) => CellPosition { row, col: cell.col }, [INFO] [stdout] 361 | | &Area::Column(col) => CellPosition { row: cell.row, col }, [INFO] [stdout] 362 | | _ => unimplemented!(), [INFO] [stdout] 363 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 359 ~ match *area { [INFO] [stdout] 360 ~ Area::Row(row) => CellPosition { row, col: cell.col }, [INFO] [stdout] 361 ~ Area::Column(col) => CellPosition { row: cell.row, col }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver/logical_solver.rs:383:11 [INFO] [stdout] | [INFO] [stdout] 383 | cells.into_iter().enumerate().filter_map(|(cell_index, &cell)| { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::collections::hash_set::Difference<'_, u32, std::hash::RandomState>` [INFO] [stdout] --> src/solver/logical_solver.rs:390:38 [INFO] [stdout] | [INFO] [stdout] 390 | let invalid_values: Vec = cell_candidates.difference(valid_cell_candidates) [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 391 | | .into_iter() [INFO] [stdout] | |________________________________________________________________^ help: consider removing `.into_iter()`: `cell_candidates.difference(valid_cell_candidates)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver/logical_solver.rs:412:9 [INFO] [stdout] | [INFO] [stdout] 412 | / return Some( [INFO] [stdout] 413 | | (area.clone(), value, cells[0], cells[1]) [INFO] [stdout] 414 | | ) [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] 412 ~ Some( [INFO] [stdout] 413 + (area.clone(), value, cells[0], cells[1]) [INFO] [stdout] 414 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver/logical_solver.rs:437:11 [INFO] [stdout] | [INFO] [stdout] 437 | cells.into_iter().map(|cell| { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/brute_solver.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 13 | / let res = SudokuBruteSolveResult { [INFO] [stdout] 14 | | solution_count, [INFO] [stdout] 15 | | solution: if let Some(grid) = &self.solution { Some(grid.to_vec()) } else { None }, [INFO] [stdout] 16 | | }; [INFO] [stdout] | |______- unnecessary `let` binding [INFO] [stdout] 17 | res [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 13 ~ [INFO] [stdout] 14 ~ SudokuBruteSolveResult { [INFO] [stdout] 15 + solution_count, [INFO] [stdout] 16 + solution: if let Some(grid) = &self.solution { Some(grid.to_vec()) } else { None }, [INFO] [stdout] 17 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/solver/brute_solver.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | solution: if let Some(grid) = &self.solution { Some(grid.to_vec()) } else { None }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.solution.as_ref().map(|grid| grid.to_vec())` [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: called `unwrap` on `best_cell` after checking its variant with `is_none` [INFO] [stdout] --> src/solver/brute_solver.rs:50:61 [INFO] [stdout] | [INFO] [stdout] 45 | if best_cell.is_none() { [INFO] [stdout] | ---------------------- help: try: `if let Some() = best_cell` [INFO] [stdout] ... [INFO] [stdout] 50 | let CellPosition { row: best_row, col: best_col } = best_cell.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/solver/brute_solver.rs:20:82 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn recursive_check(&mut self, solution_count: &mut u32, use_logical: bool, depth: u32) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/solver/brute_solver.rs:55:59 [INFO] [stdout] | [INFO] [stdout] 55 | self.recursive_check(solution_count, use_logical, depth + 1); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion [INFO] [stdout] = note: `#[warn(clippy::only_used_in_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/solver.rs:107:26 [INFO] [stdout] | [INFO] [stdout] 107 | candidates_active: self.candidates_active.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.candidates_active` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/solver.rs:109:18 [INFO] [stdout] | [INFO] [stdout] 109 | hint_mode: self.hint_mode.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.hint_mode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/solver.rs:110:25 [INFO] [stdout] | [INFO] [stdout] 110 | step_count_limit: self.step_count_limit.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.step_count_limit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `input_grid` after checking its variant with `is_some` [INFO] [stdout] --> src/solver.rs:194:7 [INFO] [stdout] | [INFO] [stdout] 193 | let grid = if input_grid.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = input_grid` [INFO] [stdout] 194 | input_grid.unwrap().values [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver.rs:158:15 [INFO] [stdout] | [INFO] [stdout] 157 | let other_cell = kropki_dot.other_cell(&cell); [INFO] [stdout] | ---------------------------------------------- unnecessary `let` binding [INFO] [stdout] 158 | other_cell [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 157 ~ [INFO] [stdout] 158 ~ kropki_dot.other_cell(&cell) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/solver.rs:280:5 [INFO] [stdout] | [INFO] [stdout] 280 | self.techniques = self.techniques.into_iter().filter(|t| !rules.contains(&t.get_rule())).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling `.retain()` instead: `self.techniques.retain(|t| !rules.contains(&t.get_rule()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] = note: `#[warn(clippy::manual_retain)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/solver.rs:401:7 [INFO] [stdout] | [INFO] [stdout] 401 | candidates = candidates.into_iter().filter(|value| value % 2 == 1).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling `.retain()` instead: `candidates.retain(|value| value % 2 == 1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/solver.rs:404:7 [INFO] [stdout] | [INFO] [stdout] 404 | candidates = candidates.into_iter().filter(|value| value % 2 == 0).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling `.retain()` instead: `candidates.retain(|value| value % 2 == 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/solver.rs:520:41 [INFO] [stdout] | [INFO] [stdout] 520 | (0..self.constraints.grid_size).map(|row| Area::Row(row)).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Area::Row` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/solver.rs:524:41 [INFO] [stdout] | [INFO] [stdout] 524 | (0..self.constraints.grid_size).map(|col| Area::Column(col)).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Area::Column` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver.rs:558:25 [INFO] [stdout] | [INFO] [stdout] 558 | self.get_area_cells(&area).into_iter().map(|cell| { [INFO] [stdout] | ^^^^^ help: change this to: `area` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver.rs:560:7 [INFO] [stdout] | [INFO] [stdout] 559 | let value = self.grid[cell.row][cell.col]; [INFO] [stdout] | ------------------------------------------ unnecessary `let` binding [INFO] [stdout] 560 | value [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 559 ~ [INFO] [stdout] 560 ~ self.grid[cell.row][cell.col] [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/solver.rs:620:53 [INFO] [stdout] | [INFO] [stdout] 620 | fn filter_cells_with_any_candidates(&self, cells: &Vec, values: &HashSet) -> 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] 620 - fn filter_cells_with_any_candidates(&self, cells: &Vec, values: &HashSet) -> Vec { [INFO] [stdout] 620 + fn filter_cells_with_any_candidates(&self, cells: &[CellPosition], values: &HashSet) -> Vec { [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/solver.rs:627:56 [INFO] [stdout] | [INFO] [stdout] 627 | fn filter_cells_with_subset_candidates(&self, cells: &Vec, values: &HashSet) -> 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] 627 - fn filter_cells_with_subset_candidates(&self, cells: &Vec, values: &HashSet) -> Vec { [INFO] [stdout] 627 + fn filter_cells_with_subset_candidates(&self, cells: &[CellPosition], values: &HashSet) -> Vec { [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/solver.rs:639:69 [INFO] [stdout] | [INFO] [stdout] 639 | fn compute_cells_by_value_in_area(&self, area: &Area, candidates: &Vec>>) -> HashMap> { [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] 639 - fn compute_cells_by_value_in_area(&self, area: &Area, candidates: &Vec>>) -> HashMap> { [INFO] [stdout] 639 + fn compute_cells_by_value_in_area(&self, area: &Area, candidates: &[Vec>]) -> HashMap> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver.rs:804:11 [INFO] [stdout] | [INFO] [stdout] 804 | cells.into_iter().filter(|cell| self.grid[cell.row][cell.col] == 0).count() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `types::CellPosition` [INFO] [stdout] --> src/types.rs:47:3 [INFO] [stdout] | [INFO] [stdout] 47 | / pub fn to_string(&self) -> String { [INFO] [stdout] 48 | | format!("R{}C{}", self.row + 1, self.col + 1) [INFO] [stdout] 49 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `types::CellPosition` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/types.rs:316:5 [INFO] [stdout] | [INFO] [stdout] 315 | let lz_string = lz_str::compress_to_base64(&json); [INFO] [stdout] | -------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 316 | lz_string [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 315 ~ [INFO] [stdout] 316 ~ lz_str::compress_to_base64(&json) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `types::Area` [INFO] [stdout] --> src/types.rs:482:3 [INFO] [stdout] | [INFO] [stdout] 482 | / pub fn to_string(&self) -> String { [INFO] [stdout] 483 | | match self { [INFO] [stdout] 484 | | Area::Row(row) => format!("row {}", row + 1), [INFO] [stdout] 485 | | Area::Column(col) => format!("column {}", col + 1), [INFO] [stdout] ... | [INFO] [stdout] 493 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `types::Area` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/solver/logical_solver.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | vec![ validity_update_steps, grid_steps, nongrid_steps ].concat() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[validity_update_steps, grid_steps, nongrid_steps]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/solver/logical_solver/x_wing.rs:67:51 [INFO] [stdout] | [INFO] [stdout] 67 | let affected_cells: Vec = vec![ [INFO] [stdout] | ___________________________________________________^ [INFO] [stdout] 68 | | solver.get_area_cells_with_candidate(&area3, value), [INFO] [stdout] 69 | | solver.get_area_cells_with_candidate(&area4, value), [INFO] [stdout] 70 | | ].concat().into_iter().filter(|&cell| { [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 67 ~ let affected_cells: Vec = [solver.get_area_cells_with_candidate(&area3, value), [INFO] [stdout] 68 ~ solver.get_area_cells_with_candidate(&area4, value)].concat().into_iter().filter(|&cell| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/solver/logical_solver/adhoc_naked_set.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | let nodes = vec![vec![starting_cell], peers].concat(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[vec![starting_cell], peers]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/solver/logical_solver/sum_candidates.rs:22:26 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new<'a>(cells: &'_ Vec, sum: u32) -> SumCombinationsLogic { [INFO] [stdout] | ^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^ 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] 22 | pub fn new<'a>(cells: &'_ Vec, sum: u32) -> SumCombinationsLogic<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/checker.rs:382:37 [INFO] [stdout] | [INFO] [stdout] 382 | for cell in self.get_area_cells(&area) { [INFO] [stdout] | ^^^^^ help: change this to: `area` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/solver/checker.rs:448:24 [INFO] [stdout] | [INFO] [stdout] 448 | if value != 0 && value % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `value.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/checker.rs:480:52 [INFO] [stdout] | [INFO] [stdout] 480 | let valid = TopBottomCandidates::new(true).run(&self).is_empty(); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/solver/logical_solver/naked_singles.rs:65:11 [INFO] [stdout] | [INFO] [stdout] 65 | areas.into_iter().map(|area| area.clone()).collect(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `areas.into_iter().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/naked_singles.rs:66:11 [INFO] [stdout] | [INFO] [stdout] 66 | &solver, [INFO] [stdout] | ^^^^^^^ help: change this to: `solver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/naked_singles.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | &solver, [INFO] [stdout] | ^^^^^^^ help: change this to: `solver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver/logical_solver/hidden_singles.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | / return self.build_grid_solution_step( [INFO] [stdout] 34 | | cells, [INFO] [stdout] 35 | | vec![ value ], [INFO] [stdout] 36 | | vec![ area.clone() ], [INFO] [stdout] 37 | | &solver, [INFO] [stdout] 38 | | ) [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] 33 ~ self.build_grid_solution_step( [INFO] [stdout] 34 + cells, [INFO] [stdout] 35 + vec![ value ], [INFO] [stdout] 36 + vec![ area.clone() ], [INFO] [stdout] 37 + &solver, [INFO] [stdout] 38 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/solver/logical_solver/hidden_singles.rs:30:24 [INFO] [stdout] | [INFO] [stdout] 30 | cells.extend(other_cells.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 30 - cells.extend(other_cells.into_iter()); [INFO] [stdout] 30 + cells.extend(other_cells); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/hidden_singles.rs:37:11 [INFO] [stdout] | [INFO] [stdout] 37 | &solver, [INFO] [stdout] | ^^^^^^^ help: change this to: `solver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/thermo_steps.rs:14:77 [INFO] [stdout] | [INFO] [stdout] 14 | let lower_bounds = ThermoCandidates::find_thermo_lower_bounds(solver, &thermo); [INFO] [stdout] | ^^^^^^^ help: change this to: `thermo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/thermo_steps.rs:15:77 [INFO] [stdout] | [INFO] [stdout] 15 | let upper_bounds = ThermoCandidates::find_thermo_upper_bounds(solver, &thermo); [INFO] [stdout] | ^^^^^^^ help: change this to: `thermo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/thermo_steps.rs:29:15 [INFO] [stdout] | [INFO] [stdout] 29 | &solver, [INFO] [stdout] | ^^^^^^^ help: change this to: `solver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver/logical_solver/candidates.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | / return vec![ [INFO] [stdout] 26 | | SolutionStep { [INFO] [stdout] 27 | | rule: self.get_rule(), [INFO] [stdout] 28 | | cells: vec![], [INFO] [stdout] ... | [INFO] [stdout] 35 | | ] [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] 25 ~ vec![ [INFO] [stdout] 26 + SolutionStep { [INFO] [stdout] 27 + rule: self.get_rule(), [INFO] [stdout] 28 + cells: vec![], [INFO] [stdout] 29 + values: vec![], [INFO] [stdout] 30 + areas: vec![], [INFO] [stdout] 31 + affected_cells: vec![], [INFO] [stdout] 32 + candidates: Some(candidates), [INFO] [stdout] 33 + invalid_state_reason: None, [INFO] [stdout] 34 + } [INFO] [stdout] 35 + ] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver/logical_solver/candidates.rs:40:59 [INFO] [stdout] | [INFO] [stdout] 40 | solver.candidates = step.candidates.as_ref().unwrap().into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver/logical_solver/candidates.rs:41:22 [INFO] [stdout] | [INFO] [stdout] 41 | .map(|row| row.into_iter().map(|col| [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/thermo_candidates.rs:19:65 [INFO] [stdout] | [INFO] [stdout] 19 | let lower_bounds = Self::find_thermo_lower_bounds(solver, &thermo); [INFO] [stdout] | ^^^^^^^ help: change this to: `thermo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/thermo_candidates.rs:20:65 [INFO] [stdout] | [INFO] [stdout] 20 | let upper_bounds = Self::find_thermo_upper_bounds(solver, &thermo); [INFO] [stdout] | ^^^^^^^ help: change this to: `thermo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicitly performing saturating subtraction [INFO] [stdout] --> src/solver/logical_solver/thermo_candidates.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | / if current_max > 0 { [INFO] [stdout] 84 | | current_max -= 1; [INFO] [stdout] 85 | | } [INFO] [stdout] | |_________^ help: try: `current_max = current_max.saturating_sub(1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `step` after checking its variant with `is_some` [INFO] [stdout] --> src/solver/logical_solver/x_wing.rs:19:20 [INFO] [stdout] | [INFO] [stdout] 18 | if step.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = step` [INFO] [stdout] 19 | return vec![ step.unwrap() ] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `step` after checking its variant with `is_some` [INFO] [stdout] --> src/solver/logical_solver/x_wing.rs:25:20 [INFO] [stdout] | [INFO] [stdout] 24 | if step.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = step` [INFO] [stdout] 25 | return vec![ step.unwrap() ] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/solver/logical_solver/xy_wing.rs:35:18 [INFO] [stdout] | [INFO] [stdout] 35 | let z = *candidates.iter().filter(|&&value| value != x).next().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `candidates.iter().find(|&&value| value != x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `step` after checking its variant with `is_some` [INFO] [stdout] --> src/solver/logical_solver/common_peer_elimination.rs:26:24 [INFO] [stdout] | [INFO] [stdout] 25 | if step.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = step` [INFO] [stdout] 26 | return vec![ step.unwrap() ] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/common_peer_elimination.rs:57:22 [INFO] [stdout] | [INFO] [stdout] 57 | &common_peers, &values [INFO] [stdout] | ^^^^^^^ help: change this to: `values` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/common_peer_elimination.rs:83:113 [INFO] [stdout] | [INFO] [stdout] 83 | let common_peers_with_values: Vec = solver.filter_cells_with_subset_candidates(&common_peers, &values); [INFO] [stdout] | ^^^^^^^ help: change this to: `values` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/solver/logical_solver/common_peer_elimination.rs:100:57 [INFO] [stdout] | [INFO] [stdout] 100 | let entry = changed_cells.entry(*peer_cell).or_insert(HashSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/sum_candidates.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | &self, Box::new(SumCombinationsLogic::new(cells, sum)) [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/solver/logical_solver/sum_candidates.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new<'a>(cells: &'_ Vec, sum: u32) -> SumCombinationsLogic { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/solver/logical_solver/kropki_chain_candidates.rs:58:11 [INFO] [stdout] | [INFO] [stdout] 58 | / if steps_by_cell.contains_key(&cell) { [INFO] [stdout] 59 | | steps_by_cell.entry(cell) [INFO] [stdout] 60 | | .and_modify(|entry| { [INFO] [stdout] 61 | | if step.values.len() > entry.values.len() { [INFO] [stdout] ... | [INFO] [stdout] 66 | | steps_by_cell.insert(cell, step); [INFO] [stdout] 67 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 58 ~ if let std::collections::hash_map::Entry::Vacant(e) = steps_by_cell.entry(cell) { [INFO] [stdout] 59 + e.insert(step); [INFO] [stdout] 60 + } else { [INFO] [stdout] 61 + steps_by_cell.entry(cell) [INFO] [stdout] 62 + .and_modify(|entry| { [INFO] [stdout] 63 + if step.values.len() > entry.values.len() { [INFO] [stdout] 64 + *entry = step; [INFO] [stdout] 65 + } [INFO] [stdout] 66 + }); [INFO] [stdout] 67 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/logical_solver/kropki_chain_candidates.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 107 | let invalid_candidates = solver.cell_candidates_diff(&cells, valid_candidates); [INFO] [stdout] | ------------------------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 108 | [INFO] [stdout] 109 | invalid_candidates [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 107 ~ [INFO] [stdout] 108 | [INFO] [stdout] 109 ~ solver.cell_candidates_diff(&cells, valid_candidates) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/kropki_chain_candidates.rs:120:58 [INFO] [stdout] | [INFO] [stdout] 120 | solver, Box::new(KropkiChainCombinationsLogic::new(&cells)) [INFO] [stdout] | ^^^^^^ help: change this to: `cells` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/solver/logical_solver/common_peer_elimination_kropki.rs:40:50 [INFO] [stdout] | [INFO] [stdout] 40 | kropki_dot_indices.into_iter().map(|index| Area::KropkiDot(index)).collect::>(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Area::KropkiDot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/solver/logical_solver/top_bottom_candidates.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | if !extra_cells.is_empty() && !(self.checker_validity && extra_cells.len() < crt_cells.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(extra_cells.is_empty() || self.checker_validity && extra_cells.len() < crt_cells.len())` [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/logical_solver/top_bottom_candidates.rs:59:10 [INFO] [stdout] | [INFO] [stdout] 59 | if !extra_cells.is_empty() && !(self.checker_validity && extra_cells.len() < next_cells.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(extra_cells.is_empty() || self.checker_validity && extra_cells.len() < next_cells.len())` [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: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/solver/logical_solver/top_bottom_candidates.rs:39:7 [INFO] [stdout] | [INFO] [stdout] 39 | (0..solver.constraints.grid_size).into_iter().collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..solver.constraints.grid_size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::Rev>` [INFO] [stdout] --> src/solver/logical_solver/top_bottom_candidates.rs:41:7 [INFO] [stdout] | [INFO] [stdout] 41 | (0..solver.constraints.grid_size).rev().into_iter().collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..solver.constraints.grid_size).rev()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/solver/logical_solver/top_bottom_candidates.rs:78:65 [INFO] [stdout] | [INFO] [stdout] 78 | fn get_extra_cells(&self, cells1: &Vec, cells2: &Vec) -> 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] 78 - fn get_extra_cells(&self, cells1: &Vec, cells2: &Vec) -> Vec { [INFO] [stdout] 78 + fn get_extra_cells(&self, cells1: &Vec, cells2: &[CellPosition]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver/logical_solver/top_bottom_candidates.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | cells1.into_iter().filter(|cell| { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/solver/logical_solver/combinations/cell_combinations_runner.rs:105:7 [INFO] [stdout] | [INFO] [stdout] 105 | / if self.combinations_logic.should_check_value_conflict() { [INFO] [stdout] 106 | | if self.state.affected_by[index].bitand(self.state.used_candidates_at[value as usize]) != 0 { [INFO] [stdout] 107 | | continue [INFO] [stdout] 108 | | } [INFO] [stdout] 109 | | } [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] 105 ~ if self.combinations_logic.should_check_value_conflict() [INFO] [stdout] 106 ~ && self.state.affected_by[index].bitand(self.state.used_candidates_at[value as usize]) != 0 { [INFO] [stdout] 107 | continue [INFO] [stdout] 108 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/combinations/cell_combinations_runner.rs:111:68 [INFO] [stdout] | [INFO] [stdout] 111 | if !self.combinations_logic.is_value_valid_candidate_in_cell(&self, value, index) { [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver/logical_solver/arrow_candidates.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | return max_arrow_sum >= self.circle_sum_min && min_arrow_sum <= self.circle_sum_max [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] 126 - return max_arrow_sum >= self.circle_sum_min && min_arrow_sum <= self.circle_sum_max [INFO] [stdout] 126 + max_arrow_sum >= self.circle_sum_min && min_arrow_sum <= self.circle_sum_max [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/solver/logical_solver/arrow_candidates.rs:122:56 [INFO] [stdout] | [INFO] [stdout] 122 | let min_arrow_sum = self.arrow_cells_sum + value + cell_count_left as u32 * 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `(cell_count_left as u32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ArrowCombinationLogicFactory` [INFO] [stdout] --> src/solver/logical_solver/arrow_candidates.rs:159:3 [INFO] [stdout] | [INFO] [stdout] 159 | / pub fn new() -> ArrowCombinationLogicFactory { [INFO] [stdout] 160 | | ArrowCombinationLogicFactory { [INFO] [stdout] 161 | | cache: HashMap::new(), [INFO] [stdout] 162 | | } [INFO] [stdout] 163 | | } [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] 158 + impl<'a> Default for ArrowCombinationLogicFactory { [INFO] [stdout] 159 + fn default() -> Self { [INFO] [stdout] 160 + Self::new() [INFO] [stdout] 161 + } [INFO] [stdout] 162 + } [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/solver/logical_solver/advanced_candidates.rs:12:54 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn eliminate_combinations(&self, combinations: &Vec>, cells: &Vec) -> CellEliminationsResult { [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] 12 - pub fn eliminate_combinations(&self, combinations: &Vec>, cells: &Vec) -> CellEliminationsResult { [INFO] [stdout] 12 + pub fn eliminate_combinations(&self, combinations: &[Vec], cells: &Vec) -> CellEliminationsResult { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/logical_solver/phistomefel_ring.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 34 | let steps = self.match_sets(solver, set1, set2); [INFO] [stdout] | ------------------------------------------------ unnecessary `let` binding [INFO] [stdout] 35 | [INFO] [stdout] 36 | steps [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 34 ~ [INFO] [stdout] 35 | [INFO] [stdout] 36 ~ self.match_sets(solver, set1, set2) [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/solver/logical_solver/phistomefel_ring.rs:56:55 [INFO] [stdout] | [INFO] [stdout] 56 | fn match_sets_ordered(&self, solver: &Solver, set1: &Vec, set2: &Vec) -> 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] 56 - fn match_sets_ordered(&self, solver: &Solver, set1: &Vec, set2: &Vec) -> Vec { [INFO] [stdout] 56 + fn match_sets_ordered(&self, solver: &Solver, set1: &[CellPosition], set2: &Vec) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/logical_solver/nishio_forcing_chains.rs:45:32 [INFO] [stdout] | [INFO] [stdout] 45 | temp_solver.apply_rule(&mut Candidates.run(&temp_solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 45 - temp_solver.apply_rule(&mut Candidates.run(&temp_solver).first().unwrap()); [INFO] [stdout] 45 + temp_solver.apply_rule(&Candidates.run(&temp_solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/nishio_forcing_chains.rs:45:32 [INFO] [stdout] | [INFO] [stdout] 45 | temp_solver.apply_rule(&mut Candidates.run(&temp_solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&temp_solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/renban_candidates.rs:28:60 [INFO] [stdout] | [INFO] [stdout] 28 | let invalid_candidates = solver.cell_candidates_diff(&cells, valid_candidates); [INFO] [stdout] | ^^^^^^ help: change this to: `cells` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver/logical_solver/renban_candidates.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | return cell_count_left as u32 >= range_left_to_fill [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] 75 - return cell_count_left as u32 >= range_left_to_fill [INFO] [stdout] 75 + cell_count_left as u32 >= range_left_to_fill [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/palindrome_values.rs:29:15 [INFO] [stdout] | [INFO] [stdout] 29 | &solver, [INFO] [stdout] | ^^^^^^^ help: change this to: `solver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/palindrome_candidates.rs:33:71 [INFO] [stdout] | [INFO] [stdout] 33 | let extra_candidates: Vec = candidates_left.difference(&candidates_right).sorted().copied().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `candidates_right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/palindrome_candidates.rs:44:72 [INFO] [stdout] | [INFO] [stdout] 44 | let extra_candidates: Vec = candidates_right.difference(&candidates_left).sorted().copied().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `candidates_left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver/adhoc_naked_set.rs:67:44 [INFO] [stdout] | [INFO] [stdout] 67 | let peer_index = *node_indices.get(&special_peer).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `special_peer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/solver/logical_solver/adhoc_naked_set.rs:137:7 [INFO] [stdout] | [INFO] [stdout] 137 | peers = peers ^ (1 << v); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `peers ^= (1 << v)` [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/solver/logical_solver/adhoc_naked_set.rs:138:7 [INFO] [stdout] | [INFO] [stdout] 138 | banned = banned | (1 << v); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `banned |= (1 << v)` [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: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/logical_solver.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 118 | / let res = SudokulogicalSolveResult { [INFO] [stdout] 119 | | solution_type, [INFO] [stdout] 120 | | solution: Some(self.grid.to_vec()), [INFO] [stdout] 121 | | steps: solution_steps.clone(), [INFO] [stdout] 122 | | invalid_state_reason: None, [INFO] [stdout] 123 | | }; [INFO] [stdout] | |______- unnecessary `let` binding [INFO] [stdout] 124 | [INFO] [stdout] 125 | res [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 118 ~ [INFO] [stdout] 119 | [INFO] [stdout] 120 ~ SudokulogicalSolveResult { [INFO] [stdout] 121 + solution_type, [INFO] [stdout] 122 + solution: Some(self.grid.to_vec()), [INFO] [stdout] 123 + steps: solution_steps.clone(), [INFO] [stdout] 124 + invalid_state_reason: None, [INFO] [stdout] 125 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/logical_solver.rs:94:42 [INFO] [stdout] | [INFO] [stdout] 94 | let rule_check = self.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 94 - let rule_check = self.apply_rule(&mut step); [INFO] [stdout] 94 + let rule_check = self.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/logical_solver.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 164 | let steps = self.run_techniques(candidate_validity_techniques); [INFO] [stdout] | --------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 165 | [INFO] [stdout] 166 | steps [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 164 ~ [INFO] [stdout] 165 | [INFO] [stdout] 166 ~ self.run_techniques(candidate_validity_techniques) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/logical_solver.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 185 | let steps = self.run_techniques(nongrid_techniques); [INFO] [stdout] | ---------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 186 | [INFO] [stdout] 187 | steps [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 185 ~ [INFO] [stdout] 186 | [INFO] [stdout] 187 ~ self.run_techniques(nongrid_techniques) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver.rs:195:33 [INFO] [stdout] | [INFO] [stdout] 195 | let steps = technique.run(&self); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver.rs:223:38 [INFO] [stdout] | [INFO] [stdout] 223 | let rule_check = technique.apply(&step, self); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/logical_solver.rs:235:23 [INFO] [stdout] | [INFO] [stdout] 235 | self.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 235 - self.apply_rule(&mut step); [INFO] [stdout] 235 + self.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver.rs:235:23 [INFO] [stdout] | [INFO] [stdout] 235 | self.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/solver/logical_solver.rs:246:42 [INFO] [stdout] | [INFO] [stdout] 246 | fn get_affected_by_cells(&self, cells: &Vec, values: &HashSet) -> 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] 246 - fn get_affected_by_cells(&self, cells: &Vec, values: &HashSet) -> Vec { [INFO] [stdout] 246 + fn get_affected_by_cells(&self, cells: &[CellPosition], values: &HashSet) -> Vec { [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/solver/logical_solver.rs:270:85 [INFO] [stdout] | [INFO] [stdout] 270 | fn get_affected_by_area_cells_cells(&self, area_cells: &Vec, cells: &Vec, values: &HashSet) -> V... [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] 270 - fn get_affected_by_area_cells_cells(&self, area_cells: &Vec, cells: &Vec, values: &HashSet) -> Vec { [INFO] [stdout] 270 + fn get_affected_by_area_cells_cells(&self, area_cells: &Vec, cells: &[CellPosition], values: &HashSet) -> Vec { [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/solver/logical_solver.rs:302:38 [INFO] [stdout] | [INFO] [stdout] 302 | fn find_common_areas(&self, cells: &Vec) -> 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] 302 - fn find_common_areas(&self, cells: &Vec) -> Vec { [INFO] [stdout] 302 + fn find_common_areas(&self, cells: &[CellPosition]) -> Vec { [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/solver/logical_solver.rs:349:46 [INFO] [stdout] | [INFO] [stdout] 349 | fn any_cells_with_candidates(&self, cells: &Vec, values: &HashSet) -> 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] 349 - fn any_cells_with_candidates(&self, cells: &Vec, values: &HashSet) -> bool { [INFO] [stdout] 349 + fn any_cells_with_candidates(&self, cells: &[CellPosition], values: &HashSet) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver.rs:350:78 [INFO] [stdout] | [INFO] [stdout] 350 | cells.iter().any(|cell| !self.candidates[cell.row][cell.col].is_disjoint(&values)) [INFO] [stdout] | ^^^^^^^ help: change this to: `values` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/solver/logical_solver.rs:353:52 [INFO] [stdout] | [INFO] [stdout] 353 | fn any_cells_with_other_candidates(&self, cells: &Vec, values: &HashSet) -> 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] 353 - fn any_cells_with_other_candidates(&self, cells: &Vec, values: &HashSet) -> bool { [INFO] [stdout] 353 + fn any_cells_with_other_candidates(&self, cells: &[CellPosition], values: &HashSet) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/logical_solver.rs:354:76 [INFO] [stdout] | [INFO] [stdout] 354 | cells.iter().any(|cell| self.candidates[cell.row][cell.col].difference(&values).count() > 0) [INFO] [stdout] | ^^^^^^^ help: change this to: `values` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/solver/logical_solver.rs:359:5 [INFO] [stdout] | [INFO] [stdout] 359 | / match area { [INFO] [stdout] 360 | | &Area::Row(row) => CellPosition { row, col: cell.col }, [INFO] [stdout] 361 | | &Area::Column(col) => CellPosition { row: cell.row, col }, [INFO] [stdout] 362 | | _ => unimplemented!(), [INFO] [stdout] 363 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 359 ~ match *area { [INFO] [stdout] 360 ~ Area::Row(row) => CellPosition { row, col: cell.col }, [INFO] [stdout] 361 ~ Area::Column(col) => CellPosition { row: cell.row, col }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver/logical_solver.rs:383:11 [INFO] [stdout] | [INFO] [stdout] 383 | cells.into_iter().enumerate().filter_map(|(cell_index, &cell)| { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::collections::hash_set::Difference<'_, u32, std::hash::RandomState>` [INFO] [stdout] --> src/solver/logical_solver.rs:390:38 [INFO] [stdout] | [INFO] [stdout] 390 | let invalid_values: Vec = cell_candidates.difference(valid_cell_candidates) [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 391 | | .into_iter() [INFO] [stdout] | |________________________________________________________________^ help: consider removing `.into_iter()`: `cell_candidates.difference(valid_cell_candidates)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/solver/logical_solver.rs:412:9 [INFO] [stdout] | [INFO] [stdout] 412 | / return Some( [INFO] [stdout] 413 | | (area.clone(), value, cells[0], cells[1]) [INFO] [stdout] 414 | | ) [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] 412 ~ Some( [INFO] [stdout] 413 + (area.clone(), value, cells[0], cells[1]) [INFO] [stdout] 414 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver/logical_solver.rs:437:11 [INFO] [stdout] | [INFO] [stdout] 437 | cells.into_iter().map(|cell| { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver/brute_solver.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 13 | / let res = SudokuBruteSolveResult { [INFO] [stdout] 14 | | solution_count, [INFO] [stdout] 15 | | solution: if let Some(grid) = &self.solution { Some(grid.to_vec()) } else { None }, [INFO] [stdout] 16 | | }; [INFO] [stdout] | |______- unnecessary `let` binding [INFO] [stdout] 17 | res [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 13 ~ [INFO] [stdout] 14 ~ SudokuBruteSolveResult { [INFO] [stdout] 15 + solution_count, [INFO] [stdout] 16 + solution: if let Some(grid) = &self.solution { Some(grid.to_vec()) } else { None }, [INFO] [stdout] 17 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/solver/brute_solver.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | solution: if let Some(grid) = &self.solution { Some(grid.to_vec()) } else { None }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.solution.as_ref().map(|grid| grid.to_vec())` [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: called `unwrap` on `best_cell` after checking its variant with `is_none` [INFO] [stdout] --> src/solver/brute_solver.rs:50:61 [INFO] [stdout] | [INFO] [stdout] 45 | if best_cell.is_none() { [INFO] [stdout] | ---------------------- help: try: `if let Some() = best_cell` [INFO] [stdout] ... [INFO] [stdout] 50 | let CellPosition { row: best_row, col: best_col } = best_cell.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/solver/brute_solver.rs:20:82 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn recursive_check(&mut self, solution_count: &mut u32, use_logical: bool, depth: u32) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/solver/brute_solver.rs:55:59 [INFO] [stdout] | [INFO] [stdout] 55 | self.recursive_check(solution_count, use_logical, depth + 1); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion [INFO] [stdout] = note: `#[warn(clippy::only_used_in_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/solver.rs:107:26 [INFO] [stdout] | [INFO] [stdout] 107 | candidates_active: self.candidates_active.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.candidates_active` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/solver.rs:109:18 [INFO] [stdout] | [INFO] [stdout] 109 | hint_mode: self.hint_mode.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.hint_mode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/solver.rs:110:25 [INFO] [stdout] | [INFO] [stdout] 110 | step_count_limit: self.step_count_limit.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.step_count_limit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `input_grid` after checking its variant with `is_some` [INFO] [stdout] --> src/solver.rs:194:7 [INFO] [stdout] | [INFO] [stdout] 193 | let grid = if input_grid.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = input_grid` [INFO] [stdout] 194 | input_grid.unwrap().values [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver.rs:158:15 [INFO] [stdout] | [INFO] [stdout] 157 | let other_cell = kropki_dot.other_cell(&cell); [INFO] [stdout] | ---------------------------------------------- unnecessary `let` binding [INFO] [stdout] 158 | other_cell [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 157 ~ [INFO] [stdout] 158 ~ kropki_dot.other_cell(&cell) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/solver.rs:280:5 [INFO] [stdout] | [INFO] [stdout] 280 | self.techniques = self.techniques.into_iter().filter(|t| !rules.contains(&t.get_rule())).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling `.retain()` instead: `self.techniques.retain(|t| !rules.contains(&t.get_rule()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] = note: `#[warn(clippy::manual_retain)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/solver.rs:401:7 [INFO] [stdout] | [INFO] [stdout] 401 | candidates = candidates.into_iter().filter(|value| value % 2 == 1).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling `.retain()` instead: `candidates.retain(|value| value % 2 == 1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/solver.rs:404:7 [INFO] [stdout] | [INFO] [stdout] 404 | candidates = candidates.into_iter().filter(|value| value % 2 == 0).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling `.retain()` instead: `candidates.retain(|value| value % 2 == 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/solver.rs:520:41 [INFO] [stdout] | [INFO] [stdout] 520 | (0..self.constraints.grid_size).map(|row| Area::Row(row)).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Area::Row` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/solver.rs:524:41 [INFO] [stdout] | [INFO] [stdout] 524 | (0..self.constraints.grid_size).map(|col| Area::Column(col)).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Area::Column` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver.rs:558:25 [INFO] [stdout] | [INFO] [stdout] 558 | self.get_area_cells(&area).into_iter().map(|cell| { [INFO] [stdout] | ^^^^^ help: change this to: `area` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/solver.rs:560:7 [INFO] [stdout] | [INFO] [stdout] 559 | let value = self.grid[cell.row][cell.col]; [INFO] [stdout] | ------------------------------------------ unnecessary `let` binding [INFO] [stdout] 560 | value [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 559 ~ [INFO] [stdout] 560 ~ self.grid[cell.row][cell.col] [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/solver.rs:620:53 [INFO] [stdout] | [INFO] [stdout] 620 | fn filter_cells_with_any_candidates(&self, cells: &Vec, values: &HashSet) -> 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] 620 - fn filter_cells_with_any_candidates(&self, cells: &Vec, values: &HashSet) -> Vec { [INFO] [stdout] 620 + fn filter_cells_with_any_candidates(&self, cells: &[CellPosition], values: &HashSet) -> Vec { [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/solver.rs:627:56 [INFO] [stdout] | [INFO] [stdout] 627 | fn filter_cells_with_subset_candidates(&self, cells: &Vec, values: &HashSet) -> 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] 627 - fn filter_cells_with_subset_candidates(&self, cells: &Vec, values: &HashSet) -> Vec { [INFO] [stdout] 627 + fn filter_cells_with_subset_candidates(&self, cells: &[CellPosition], values: &HashSet) -> Vec { [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/solver.rs:639:69 [INFO] [stdout] | [INFO] [stdout] 639 | fn compute_cells_by_value_in_area(&self, area: &Area, candidates: &Vec>>) -> HashMap> { [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] 639 - fn compute_cells_by_value_in_area(&self, area: &Area, candidates: &Vec>>) -> HashMap> { [INFO] [stdout] 639 + fn compute_cells_by_value_in_area(&self, area: &Area, candidates: &[Vec>]) -> HashMap> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/solver.rs:804:11 [INFO] [stdout] | [INFO] [stdout] 804 | cells.into_iter().filter(|cell| self.grid[cell.row][cell.col] == 0).count() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/naked_singles.rs:24:21 [INFO] [stdout] | [INFO] [stdout] 24 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 24 - solver.apply_rule(&mut step); [INFO] [stdout] 24 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/naked_singles.rs:24:21 [INFO] [stdout] | [INFO] [stdout] 24 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/naked_singles.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 40 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 40 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/naked_singles.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/naked_singles.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 51 - solver.apply_rule(&mut step); [INFO] [stdout] 51 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/naked_singles.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:24:21 [INFO] [stdout] | [INFO] [stdout] 24 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 24 - solver.apply_rule(&mut step); [INFO] [stdout] 24 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 41 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 41 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:55:21 [INFO] [stdout] | [INFO] [stdout] 55 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 55 - solver.apply_rule(&mut step); [INFO] [stdout] 55 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:73:21 [INFO] [stdout] | [INFO] [stdout] 73 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 73 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 73 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:73:21 [INFO] [stdout] | [INFO] [stdout] 73 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().copied().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:80:24 [INFO] [stdout] | [INFO] [stdout] 80 | assert_eq!(step.cells.iter().copied().collect::>(), vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] = note: `#[warn(clippy::iter_cloned_collect)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().copied().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:83:33 [INFO] [stdout] | [INFO] [stdout] 83 | assert_eq!(step.affected_cells.iter().copied().collect::>(), vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 93 - solver.apply_rule(&mut step); [INFO] [stdout] 93 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:122:21 [INFO] [stdout] | [INFO] [stdout] 122 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 122 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 122 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:122:21 [INFO] [stdout] | [INFO] [stdout] 122 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().copied().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:129:24 [INFO] [stdout] | [INFO] [stdout] 129 | assert_eq!(step.cells.iter().copied().collect::>(), vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().copied().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:132:33 [INFO] [stdout] | [INFO] [stdout] 132 | assert_eq!(step.affected_cells.iter().copied().collect::>(), vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/grid_steps.rs:139:21 [INFO] [stdout] | [INFO] [stdout] 139 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 139 - solver.apply_rule(&mut step); [INFO] [stdout] 139 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:15:21 [INFO] [stdout] | [INFO] [stdout] 15 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 15 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 15 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:15:21 [INFO] [stdout] | [INFO] [stdout] 15 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:31:21 [INFO] [stdout] | [INFO] [stdout] 31 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 31 - solver.apply_rule(&mut step); [INFO] [stdout] 31 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:31:21 [INFO] [stdout] | [INFO] [stdout] 31 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:50:21 [INFO] [stdout] | [INFO] [stdout] 50 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 50 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 50 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:50:21 [INFO] [stdout] | [INFO] [stdout] 50 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:69:21 [INFO] [stdout] | [INFO] [stdout] 69 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 69 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 69 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:69:21 [INFO] [stdout] | [INFO] [stdout] 69 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:89:21 [INFO] [stdout] | [INFO] [stdout] 89 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 89 - solver.apply_rule(&mut step); [INFO] [stdout] 89 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:89:21 [INFO] [stdout] | [INFO] [stdout] 89 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 111 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 111 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:131:21 [INFO] [stdout] | [INFO] [stdout] 131 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 131 - solver.apply_rule(&mut step); [INFO] [stdout] 131 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_pairs.rs:131:21 [INFO] [stdout] | [INFO] [stdout] 131 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_triples.rs:15:21 [INFO] [stdout] | [INFO] [stdout] 15 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 15 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 15 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_triples.rs:15:21 [INFO] [stdout] | [INFO] [stdout] 15 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_triples.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 33 - solver.apply_rule(&mut step); [INFO] [stdout] 33 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_triples.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_triples.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 51 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 51 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/locked_candidates_triples.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().copied().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | assert_eq!(step.cells.iter().copied().collect::>(), vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:27:21 [INFO] [stdout] | [INFO] [stdout] 27 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 27 - solver.apply_rule(&mut step); [INFO] [stdout] 27 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:27:21 [INFO] [stdout] | [INFO] [stdout] 27 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().copied().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:52:24 [INFO] [stdout] | [INFO] [stdout] 52 | assert_eq!(step.cells.iter().copied().collect::>(), vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:60:21 [INFO] [stdout] | [INFO] [stdout] 60 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 60 - solver.apply_rule(&mut step); [INFO] [stdout] 60 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:60:21 [INFO] [stdout] | [INFO] [stdout] 60 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().copied().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:83:24 [INFO] [stdout] | [INFO] [stdout] 83 | assert_eq!(step.cells.iter().copied().collect::>(), vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:92:21 [INFO] [stdout] | [INFO] [stdout] 92 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 92 - solver.apply_rule(&mut step); [INFO] [stdout] 92 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:92:21 [INFO] [stdout] | [INFO] [stdout] 92 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:106:21 [INFO] [stdout] | [INFO] [stdout] 106 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 106 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 106 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:106:21 [INFO] [stdout] | [INFO] [stdout] 106 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:117:21 [INFO] [stdout] | [INFO] [stdout] 117 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 117 - solver.apply_rule(&mut step); [INFO] [stdout] 117 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:117:21 [INFO] [stdout] | [INFO] [stdout] 117 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().copied().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:141:24 [INFO] [stdout] | [INFO] [stdout] 141 | assert_eq!(step.cells.iter().copied().collect::>(), vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 150 - solver.apply_rule(&mut step); [INFO] [stdout] 150 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:150:21 [INFO] [stdout] | [INFO] [stdout] 150 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().copied().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:174:24 [INFO] [stdout] | [INFO] [stdout] 174 | assert_eq!(step.cells.iter().copied().collect::>(), vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:182:21 [INFO] [stdout] | [INFO] [stdout] 182 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 182 - solver.apply_rule(&mut step); [INFO] [stdout] 182 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:182:21 [INFO] [stdout] | [INFO] [stdout] 182 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:204:21 [INFO] [stdout] | [INFO] [stdout] 204 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 204 - solver.apply_rule(&mut step); [INFO] [stdout] 204 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_singles.rs:204:21 [INFO] [stdout] | [INFO] [stdout] 204 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_pairs.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 16 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 16 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_pairs.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_pairs.rs:27:21 [INFO] [stdout] | [INFO] [stdout] 27 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 27 - solver.apply_rule(&mut step); [INFO] [stdout] 27 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_pairs.rs:27:21 [INFO] [stdout] | [INFO] [stdout] 27 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_pairs.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 52 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 52 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_pairs.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_triples.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 17 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 17 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_triples.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_triples.rs:29:21 [INFO] [stdout] | [INFO] [stdout] 29 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 29 - solver.apply_rule(&mut step); [INFO] [stdout] 29 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_triples.rs:29:21 [INFO] [stdout] | [INFO] [stdout] 29 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_triples.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 66 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 66 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/hidden_triples.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/naked_pairs.rs:18:21 [INFO] [stdout] | [INFO] [stdout] 18 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 18 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 18 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/naked_pairs.rs:18:21 [INFO] [stdout] | [INFO] [stdout] 18 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/naked_pairs.rs:25:25 [INFO] [stdout] | [INFO] [stdout] 25 | assert_eq!(step.values.iter().cloned().collect::>(), vec![ 4, 5 ]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/naked_pairs.rs:29:21 [INFO] [stdout] | [INFO] [stdout] 29 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 29 - solver.apply_rule(&mut step); [INFO] [stdout] 29 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/naked_pairs.rs:29:21 [INFO] [stdout] | [INFO] [stdout] 29 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/naked_pairs.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 52 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 52 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/naked_pairs.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/naked_triples.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 26 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 26 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/naked_triples.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/naked_triples.rs:33:25 [INFO] [stdout] | [INFO] [stdout] 33 | assert_eq!(step.values.iter().cloned().collect::>(), vec![ 1, 2, 3 ]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/naked_triples.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 37 - solver.apply_rule(&mut step); [INFO] [stdout] 37 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/naked_triples.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/naked_triples.rs:73:21 [INFO] [stdout] | [INFO] [stdout] 73 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 73 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 73 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/naked_triples.rs:73:21 [INFO] [stdout] | [INFO] [stdout] 73 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/thermo_steps.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 34 - solver.apply_rule(&mut step); [INFO] [stdout] 34 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/thermo_steps.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/thermo_candidates.rs:18:21 [INFO] [stdout] | [INFO] [stdout] 18 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 18 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 18 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/thermo_candidates.rs:18:21 [INFO] [stdout] | [INFO] [stdout] 18 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/thermo_candidates.rs:57:21 [INFO] [stdout] | [INFO] [stdout] 57 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 57 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 57 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/thermo_candidates.rs:57:21 [INFO] [stdout] | [INFO] [stdout] 57 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/thermo_candidates.rs:73:21 [INFO] [stdout] | [INFO] [stdout] 73 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 26 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 26 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 52 - solver.apply_rule(&mut step); [INFO] [stdout] 52 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:78:21 [INFO] [stdout] | [INFO] [stdout] 78 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 78 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 78 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:78:21 [INFO] [stdout] | [INFO] [stdout] 78 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:106:21 [INFO] [stdout] | [INFO] [stdout] 106 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 106 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 106 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:106:21 [INFO] [stdout] | [INFO] [stdout] 106 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:132:21 [INFO] [stdout] | [INFO] [stdout] 132 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 132 - solver.apply_rule(&mut step); [INFO] [stdout] 132 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:132:21 [INFO] [stdout] | [INFO] [stdout] 132 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:169:21 [INFO] [stdout] | [INFO] [stdout] 169 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 169 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 169 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:169:21 [INFO] [stdout] | [INFO] [stdout] 169 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:186:21 [INFO] [stdout] | [INFO] [stdout] 186 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 186 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 186 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/x_wing.rs:186:21 [INFO] [stdout] | [INFO] [stdout] 186 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/xy_wing.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 28 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 28 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/xy_wing.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/xy_wing.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 48 - solver.apply_rule(&mut step); [INFO] [stdout] 48 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/xy_wing.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/xy_wing.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 80 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 80 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 80 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/xy_wing.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 80 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/xy_wing.rs:108:21 [INFO] [stdout] | [INFO] [stdout] 108 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 108 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 108 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/xy_wing.rs:108:21 [INFO] [stdout] | [INFO] [stdout] 108 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 14 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 14 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:31:21 [INFO] [stdout] | [INFO] [stdout] 31 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 31 - solver.apply_rule(&mut step); [INFO] [stdout] 31 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:31:21 [INFO] [stdout] | [INFO] [stdout] 31 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 49 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 49 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:67:21 [INFO] [stdout] | [INFO] [stdout] 67 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 67 - solver.apply_rule(&mut step); [INFO] [stdout] 67 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:67:21 [INFO] [stdout] | [INFO] [stdout] 67 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 91 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 91 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:107:21 [INFO] [stdout] | [INFO] [stdout] 107 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 107 - solver.apply_rule(&mut step); [INFO] [stdout] 107 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination.rs:107:21 [INFO] [stdout] | [INFO] [stdout] 107 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination_kropki.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 17 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 17 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination_kropki.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination_kropki.rs:31:21 [INFO] [stdout] | [INFO] [stdout] 31 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 31 - solver.apply_rule(&mut step); [INFO] [stdout] 31 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination_kropki.rs:31:21 [INFO] [stdout] | [INFO] [stdout] 31 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination_kropki.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 42 - solver.apply_rule(&mut step); [INFO] [stdout] 42 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination_kropki.rs:42:21 [INFO] [stdout] | [INFO] [stdout] 42 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:27:21 [INFO] [stdout] | [INFO] [stdout] 27 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 27 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 27 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:27:21 [INFO] [stdout] | [INFO] [stdout] 27 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 41 - solver.apply_rule(&mut step); [INFO] [stdout] 41 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:41:21 [INFO] [stdout] | [INFO] [stdout] 41 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:50:21 [INFO] [stdout] | [INFO] [stdout] 50 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 50 - solver.apply_rule(&mut step); [INFO] [stdout] 50 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:50:21 [INFO] [stdout] | [INFO] [stdout] 50 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:59:21 [INFO] [stdout] | [INFO] [stdout] 59 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 59 - solver.apply_rule(&mut step); [INFO] [stdout] 59 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:59:21 [INFO] [stdout] | [INFO] [stdout] 59 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:87:21 [INFO] [stdout] | [INFO] [stdout] 87 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 87 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 87 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:87:21 [INFO] [stdout] | [INFO] [stdout] 87 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:101:21 [INFO] [stdout] | [INFO] [stdout] 101 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 101 - solver.apply_rule(&mut step); [INFO] [stdout] 101 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:101:21 [INFO] [stdout] | [INFO] [stdout] 101 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:110:21 [INFO] [stdout] | [INFO] [stdout] 110 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 110 - solver.apply_rule(&mut step); [INFO] [stdout] 110 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:110:21 [INFO] [stdout] | [INFO] [stdout] 110 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:119:21 [INFO] [stdout] | [INFO] [stdout] 119 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 119 - solver.apply_rule(&mut step); [INFO] [stdout] 119 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:119:21 [INFO] [stdout] | [INFO] [stdout] 119 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:144:21 [INFO] [stdout] | [INFO] [stdout] 144 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 144 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 144 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:144:21 [INFO] [stdout] | [INFO] [stdout] 144 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:158:21 [INFO] [stdout] | [INFO] [stdout] 158 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 158 - solver.apply_rule(&mut step); [INFO] [stdout] 158 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:158:21 [INFO] [stdout] | [INFO] [stdout] 158 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 167 - solver.apply_rule(&mut step); [INFO] [stdout] 167 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:176:21 [INFO] [stdout] | [INFO] [stdout] 176 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 176 - solver.apply_rule(&mut step); [INFO] [stdout] 176 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:176:21 [INFO] [stdout] | [INFO] [stdout] 176 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:202:21 [INFO] [stdout] | [INFO] [stdout] 202 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 202 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 202 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:202:21 [INFO] [stdout] | [INFO] [stdout] 202 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:215:21 [INFO] [stdout] | [INFO] [stdout] 215 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 215 - solver.apply_rule(&mut step); [INFO] [stdout] 215 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_advanced_candidates.rs:215:21 [INFO] [stdout] | [INFO] [stdout] 215 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/killer_candidates.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 16 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 16 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/killer_candidates.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/killer_candidates.rs:45:21 [INFO] [stdout] | [INFO] [stdout] 45 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 45 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 45 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/killer_candidates.rs:45:21 [INFO] [stdout] | [INFO] [stdout] 45 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/killer_candidates.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 62 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 62 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/killer_candidates.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/killer_candidates.rs:98:21 [INFO] [stdout] | [INFO] [stdout] 98 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 98 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 98 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/killer_candidates.rs:98:21 [INFO] [stdout] | [INFO] [stdout] 98 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/killer45.rs:20:21 [INFO] [stdout] | [INFO] [stdout] 20 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 20 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 20 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/killer45.rs:20:21 [INFO] [stdout] | [INFO] [stdout] 20 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/killer45.rs:55:21 [INFO] [stdout] | [INFO] [stdout] 55 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 55 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 55 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/killer45.rs:55:21 [INFO] [stdout] | [INFO] [stdout] 55 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/killer45.rs:84:21 [INFO] [stdout] | [INFO] [stdout] 84 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 84 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 84 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/killer45.rs:84:21 [INFO] [stdout] | [INFO] [stdout] 84 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/killer45.rs:139:21 [INFO] [stdout] | [INFO] [stdout] 139 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 139 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 139 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/killer45.rs:139:21 [INFO] [stdout] | [INFO] [stdout] 139 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_pairs.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 21 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 21 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_pairs.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 14 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 14 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:35:21 [INFO] [stdout] | [INFO] [stdout] 35 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:43:21 [INFO] [stdout] | [INFO] [stdout] 43 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:65:21 [INFO] [stdout] | [INFO] [stdout] 65 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 65 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 65 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:65:21 [INFO] [stdout] | [INFO] [stdout] 65 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:76:21 [INFO] [stdout] | [INFO] [stdout] 76 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:86:21 [INFO] [stdout] | [INFO] [stdout] 86 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:94:21 [INFO] [stdout] | [INFO] [stdout] 94 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:102:21 [INFO] [stdout] | [INFO] [stdout] 102 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:116:21 [INFO] [stdout] | [INFO] [stdout] 116 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 116 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 116 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:116:21 [INFO] [stdout] | [INFO] [stdout] 116 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:127:21 [INFO] [stdout] | [INFO] [stdout] 127 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/kropki_chains.rs:137:21 [INFO] [stdout] | [INFO] [stdout] 137 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/turbot_fish.rs:29:21 [INFO] [stdout] | [INFO] [stdout] 29 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 29 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 29 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/turbot_fish.rs:29:21 [INFO] [stdout] | [INFO] [stdout] 29 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/turbot_fish.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 48 - solver.apply_rule(&mut step); [INFO] [stdout] 48 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/turbot_fish.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/top_bottom_candidates.rs:10:21 [INFO] [stdout] | [INFO] [stdout] 10 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 10 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 10 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/top_bottom_candidates.rs:10:21 [INFO] [stdout] | [INFO] [stdout] 10 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/top_bottom_candidates.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 34 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 34 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/top_bottom_candidates.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/top_bottom_candidates.rs:56:21 [INFO] [stdout] | [INFO] [stdout] 56 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 56 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 56 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/top_bottom_candidates.rs:56:21 [INFO] [stdout] | [INFO] [stdout] 56 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/top_bottom_candidates.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 80 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 80 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 80 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/top_bottom_candidates.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 80 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 13 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 13 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:24:21 [INFO] [stdout] | [INFO] [stdout] 24 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 24 - solver.apply_rule(&mut step); [INFO] [stdout] 24 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:24:21 [INFO] [stdout] | [INFO] [stdout] 24 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:39:21 [INFO] [stdout] | [INFO] [stdout] 39 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 39 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 39 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:39:21 [INFO] [stdout] | [INFO] [stdout] 39 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:50:21 [INFO] [stdout] | [INFO] [stdout] 50 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 50 - solver.apply_rule(&mut step); [INFO] [stdout] 50 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:50:21 [INFO] [stdout] | [INFO] [stdout] 50 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:64:21 [INFO] [stdout] | [INFO] [stdout] 64 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 64 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 64 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:64:21 [INFO] [stdout] | [INFO] [stdout] 64 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:79:21 [INFO] [stdout] | [INFO] [stdout] 79 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 79 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 79 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/empty_rectangles.rs:79:21 [INFO] [stdout] | [INFO] [stdout] 79 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 16 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 16 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:26:21 [INFO] [stdout] | [INFO] [stdout] 26 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:36:21 [INFO] [stdout] | [INFO] [stdout] 36 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:46:21 [INFO] [stdout] | [INFO] [stdout] 46 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:64:21 [INFO] [stdout] | [INFO] [stdout] 64 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 64 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 64 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:64:21 [INFO] [stdout] | [INFO] [stdout] 64 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:74:21 [INFO] [stdout] | [INFO] [stdout] 74 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:84:21 [INFO] [stdout] | [INFO] [stdout] 84 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:105:21 [INFO] [stdout] | [INFO] [stdout] 105 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 105 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 105 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:105:21 [INFO] [stdout] | [INFO] [stdout] 105 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:115:21 [INFO] [stdout] | [INFO] [stdout] 115 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:136:21 [INFO] [stdout] | [INFO] [stdout] 136 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 136 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 136 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:136:21 [INFO] [stdout] | [INFO] [stdout] 136 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:146:21 [INFO] [stdout] | [INFO] [stdout] 146 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 167 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 167 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:187:21 [INFO] [stdout] | [INFO] [stdout] 187 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:197:21 [INFO] [stdout] | [INFO] [stdout] 197 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:207:21 [INFO] [stdout] | [INFO] [stdout] 207 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:217:21 [INFO] [stdout] | [INFO] [stdout] 217 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_candidates.rs:227:21 [INFO] [stdout] | [INFO] [stdout] 227 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_advanced_candidates.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 21 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 21 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_advanced_candidates.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_advanced_candidates.rs:35:21 [INFO] [stdout] | [INFO] [stdout] 35 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 35 - solver.apply_rule(&mut step); [INFO] [stdout] 35 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/arrow_advanced_candidates.rs:35:21 [INFO] [stdout] | [INFO] [stdout] 35 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination_arrow.rs:20:21 [INFO] [stdout] | [INFO] [stdout] 20 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 20 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 20 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination_arrow.rs:20:21 [INFO] [stdout] | [INFO] [stdout] 20 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().copied().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination_arrow.rs:30:33 [INFO] [stdout] | [INFO] [stdout] 30 | assert_eq!(step.affected_cells.iter().copied().collect::>(), vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination_arrow.rs:36:21 [INFO] [stdout] | [INFO] [stdout] 36 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 36 - solver.apply_rule(&mut step); [INFO] [stdout] 36 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/common_peer_elimination_arrow.rs:36:21 [INFO] [stdout] | [INFO] [stdout] 36 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/renban_candidates.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 16 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 16 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/renban_candidates.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/renban_candidates.rs:45:21 [INFO] [stdout] | [INFO] [stdout] 45 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 45 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 45 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/renban_candidates.rs:45:21 [INFO] [stdout] | [INFO] [stdout] 45 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/palindrome_values.rs:24:21 [INFO] [stdout] | [INFO] [stdout] 24 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/palindrome_values.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/palindrome_candidates.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 13 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 13 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/palindrome_candidates.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/palindrome_candidates.rs:24:21 [INFO] [stdout] | [INFO] [stdout] 24 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/palindrome_candidates.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | solver.apply_rule(&step); [INFO] [stdout] | ^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 30 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 30 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:53:21 [INFO] [stdout] | [INFO] [stdout] 53 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 53 - solver.apply_rule(&mut step); [INFO] [stdout] 53 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:53:21 [INFO] [stdout] | [INFO] [stdout] 53 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 98 - solver.apply_rule(&mut step); [INFO] [stdout] 98 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:128:21 [INFO] [stdout] | [INFO] [stdout] 128 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 128 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 128 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:128:21 [INFO] [stdout] | [INFO] [stdout] 128 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:141:23 [INFO] [stdout] | [INFO] [stdout] 141 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 141 - solver.apply_rule(&mut step); [INFO] [stdout] 141 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:141:23 [INFO] [stdout] | [INFO] [stdout] 141 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 167 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 167 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:180:21 [INFO] [stdout] | [INFO] [stdout] 180 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 180 - solver.apply_rule(&mut step); [INFO] [stdout] 180 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:180:21 [INFO] [stdout] | [INFO] [stdout] 180 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/nishio_forcing_chains.rs:19:21 [INFO] [stdout] | [INFO] [stdout] 19 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 19 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 19 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/nishio_forcing_chains.rs:19:21 [INFO] [stdout] | [INFO] [stdout] 19 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/nishio_forcing_chains.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 62 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 62 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/nishio_forcing_chains.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:12:21 [INFO] [stdout] | [INFO] [stdout] 12 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 12 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 12 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:12:21 [INFO] [stdout] | [INFO] [stdout] 12 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 28 - solver.apply_rule(&mut step); [INFO] [stdout] 28 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:28:21 [INFO] [stdout] | [INFO] [stdout] 28 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:43:21 [INFO] [stdout] | [INFO] [stdout] 43 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 43 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 43 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:43:21 [INFO] [stdout] | [INFO] [stdout] 43 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 63 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 63 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:63:21 [INFO] [stdout] | [INFO] [stdout] 63 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:78:21 [INFO] [stdout] | [INFO] [stdout] 78 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 78 - solver.apply_rule(&mut step); [INFO] [stdout] 78 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:78:21 [INFO] [stdout] | [INFO] [stdout] 78 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:92:21 [INFO] [stdout] | [INFO] [stdout] 92 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 92 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 92 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:92:21 [INFO] [stdout] | [INFO] [stdout] 92 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:107:21 [INFO] [stdout] | [INFO] [stdout] 107 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 107 - solver.apply_rule(&mut step); [INFO] [stdout] 107 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:107:21 [INFO] [stdout] | [INFO] [stdout] 107 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:126:21 [INFO] [stdout] | [INFO] [stdout] 126 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 126 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 126 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:126:21 [INFO] [stdout] | [INFO] [stdout] 126 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rules` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:127:22 [INFO] [stdout] | [INFO] [stdout] 127 | solver.apply_rules(&mut ThermoCandidates.run(&solver)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 127 - solver.apply_rules(&mut ThermoCandidates.run(&solver)); [INFO] [stdout] 127 + solver.apply_rules(&ThermoCandidates.run(&solver)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:145:21 [INFO] [stdout] | [INFO] [stdout] 145 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 145 - solver.apply_rule(&mut step); [INFO] [stdout] 145 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:145:21 [INFO] [stdout] | [INFO] [stdout] 145 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:159:21 [INFO] [stdout] | [INFO] [stdout] 159 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 159 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 159 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:159:21 [INFO] [stdout] | [INFO] [stdout] 159 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 177 - solver.apply_rule(&mut step); [INFO] [stdout] 177 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:187:21 [INFO] [stdout] | [INFO] [stdout] 187 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 187 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 187 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:187:21 [INFO] [stdout] | [INFO] [stdout] 187 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:210:21 [INFO] [stdout] | [INFO] [stdout] 210 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 210 - solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] 210 + solver.apply_rule(&Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:210:21 [INFO] [stdout] | [INFO] [stdout] 210 | solver.apply_rule(&mut Candidates.run(&solver).first().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Candidates.run(&solver).first().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `apply_rule` doesn't need a mutable reference [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:233:21 [INFO] [stdout] | [INFO] [stdout] 233 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 233 - solver.apply_rule(&mut step); [INFO] [stdout] 233 + solver.apply_rule(&step); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/solver/tests/logical_solver/adhoc_naked_set.rs:233:21 [INFO] [stdout] | [INFO] [stdout] 233 | solver.apply_rule(&mut step); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `step` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().copied().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/solver/tests/logical_solver/puzzles/classic_9x9.rs:331:68 [INFO] [stdout] | [INFO] [stdout] 331 | let constraints = SudokuConstraints::new(grid_size, fixed_numbers.iter().copied().collect()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `types::CellPosition` [INFO] [stdout] --> src/types.rs:47:3 [INFO] [stdout] | [INFO] [stdout] 47 | / pub fn to_string(&self) -> String { [INFO] [stdout] 48 | | format!("R{}C{}", self.row + 1, self.col + 1) [INFO] [stdout] 49 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `types::CellPosition` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/types.rs:316:5 [INFO] [stdout] | [INFO] [stdout] 315 | let lz_string = lz_str::compress_to_base64(&json); [INFO] [stdout] | -------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 316 | lz_string [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 315 ~ [INFO] [stdout] 316 ~ lz_str::compress_to_base64(&json) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `types::Area` [INFO] [stdout] --> src/types.rs:482:3 [INFO] [stdout] | [INFO] [stdout] 482 | / pub fn to_string(&self) -> String { [INFO] [stdout] 483 | | match self { [INFO] [stdout] 484 | | Area::Row(row) => format!("row {}", row + 1), [INFO] [stdout] 485 | | Area::Column(col) => format!("column {}", col + 1), [INFO] [stdout] ... | [INFO] [stdout] 493 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `types::Area` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/solver/logical_solver.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | vec![ validity_update_steps, grid_steps, nongrid_steps ].concat() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[validity_update_steps, grid_steps, nongrid_steps]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/solver/logical_solver/x_wing.rs:67:51 [INFO] [stdout] | [INFO] [stdout] 67 | let affected_cells: Vec = vec![ [INFO] [stdout] | ___________________________________________________^ [INFO] [stdout] 68 | | solver.get_area_cells_with_candidate(&area3, value), [INFO] [stdout] 69 | | solver.get_area_cells_with_candidate(&area4, value), [INFO] [stdout] 70 | | ].concat().into_iter().filter(|&cell| { [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 67 ~ let affected_cells: Vec = [solver.get_area_cells_with_candidate(&area3, value), [INFO] [stdout] 68 ~ solver.get_area_cells_with_candidate(&area4, value)].concat().into_iter().filter(|&cell| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/solver/logical_solver/adhoc_naked_set.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | let nodes = vec![vec![starting_cell], peers].concat(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[vec![starting_cell], peers]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/solver/tests/logical_solver/renban_candidates.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | let renban = vec![ [INFO] [stdout] | ________________^ [INFO] [stdout] 10 | | CellPosition::new(0, 0), CellPosition::new(0, 1), [INFO] [stdout] 11 | | CellPosition::new(0, 2), CellPosition::new(1, 2), [INFO] [stdout] 12 | | ]; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 9 ~ let renban = [CellPosition::new(0, 0), CellPosition::new(0, 1), [INFO] [stdout] 10 ~ CellPosition::new(0, 2), CellPosition::new(1, 2)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/solver/tests/logical_solver/renban_candidates.rs:38:16 [INFO] [stdout] | [INFO] [stdout] 38 | let renban = vec![ [INFO] [stdout] | ________________^ [INFO] [stdout] 39 | | CellPosition::new(0, 0), CellPosition::new(0, 1), [INFO] [stdout] 40 | | CellPosition::new(0, 2), CellPosition::new(1, 2), [INFO] [stdout] 41 | | ]; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 38 ~ let renban = [CellPosition::new(0, 0), CellPosition::new(0, 1), [INFO] [stdout] 39 ~ CellPosition::new(0, 2), CellPosition::new(1, 2)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/solver/tests/logical_solver/palindrome_values.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | let palindrome = vec![ [INFO] [stdout] | ____________________^ [INFO] [stdout] 9 | | CellPosition::new(0, 0), CellPosition::new(0, 1), CellPosition::new(0, 2), [INFO] [stdout] 10 | | CellPosition::new(0, 3), CellPosition::new(0, 4), [INFO] [stdout] 11 | | ]; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 8 ~ let palindrome = [CellPosition::new(0, 0), CellPosition::new(0, 1), CellPosition::new(0, 2), [INFO] [stdout] 9 ~ CellPosition::new(0, 3), CellPosition::new(0, 4)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/solver/tests/logical_solver/palindrome_candidates.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | let palindrome = vec![ [INFO] [stdout] | ____________________^ [INFO] [stdout] 9 | | CellPosition::new(0, 0), CellPosition::new(0, 1), CellPosition::new(0, 2), [INFO] [stdout] 10 | | ]; [INFO] [stdout] | |___^ help: you can use an array directly: `[CellPosition::new(0, 0), CellPosition::new(0, 1), CellPosition::new(0, 2)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/solver/tests/logical_solver/phistomefel_ring.rs:35:22 [INFO] [stdout] | [INFO] [stdout] 35 | let corner_cells = vec![ [INFO] [stdout] | ______________________^ [INFO] [stdout] 36 | | CellPosition::new(2, 2), CellPosition::new(2, 6), [INFO] [stdout] 37 | | CellPosition::new(6, 2), CellPosition::new(6, 6), [INFO] [stdout] 38 | | ]; [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 35 ~ let corner_cells = [CellPosition::new(2, 2), CellPosition::new(2, 6), [INFO] [stdout] 36 ~ CellPosition::new(6, 2), CellPosition::new(6, 6)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/solver/logical_solver/sum_candidates.rs:22:26 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn new<'a>(cells: &'_ Vec, sum: u32) -> SumCombinationsLogic { [INFO] [stdout] | ^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^ 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] 22 | pub fn new<'a>(cells: &'_ Vec, sum: u32) -> SumCombinationsLogic<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.36s [INFO] running `Command { std: "docker" "inspect" "fc439569e0980271e2b820582bed074b80178603f899167fcd6f8755eebe4203", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fc439569e0980271e2b820582bed074b80178603f899167fcd6f8755eebe4203", kill_on_drop: false }` [INFO] [stdout] fc439569e0980271e2b820582bed074b80178603f899167fcd6f8755eebe4203