[INFO] cloning repository https://github.com/timmy-feng/flow-solver [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/timmy-feng/flow-solver" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftimmy-feng%2Fflow-solver", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftimmy-feng%2Fflow-solver'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 76c1aad7be2a6dbdf4916fb46d396f3496cd2f18 [INFO] linting timmy-feng/flow-solver against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftimmy-feng%2Fflow-solver" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/timmy-feng/flow-solver [INFO] finished tweaking git repo https://github.com/timmy-feng/flow-solver [INFO] tweaked toml for git repo https://github.com/timmy-feng/flow-solver written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/timmy-feng/flow-solver on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/timmy-feng/flow-solver already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded libc v0.2.151 [INFO] [stderr] Downloaded tokio v1.42.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c51e4dcfd8c0c910f5f874344f73f3fdc8aa1c00dfee34a54442a072b2903c62 [INFO] running `Command { std: "docker" "start" "-a" "c51e4dcfd8c0c910f5f874344f73f3fdc8aa1c00dfee34a54442a072b2903c62", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c51e4dcfd8c0c910f5f874344f73f3fdc8aa1c00dfee34a54442a072b2903c62", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c51e4dcfd8c0c910f5f874344f73f3fdc8aa1c00dfee34a54442a072b2903c62", kill_on_drop: false }` [INFO] [stdout] c51e4dcfd8c0c910f5f874344f73f3fdc8aa1c00dfee34a54442a072b2903c62 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9b7a8c26620fd05125b57b1815484e3cf8419d6f57ca9ef69f3c9f7691fe8771 [INFO] running `Command { std: "docker" "start" "-a" "9b7a8c26620fd05125b57b1815484e3cf8419d6f57ca9ef69f3c9f7691fe8771", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.151 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Compiling serde_json v1.0.143 [INFO] [stderr] Checking bitflags v2.9.3 [INFO] [stderr] Checking clap_builder v4.5.44 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking signal-hook-registry v1.4.6 [INFO] [stderr] Checking socket2 v0.5.8 [INFO] [stderr] Checking mio v1.0.2 [INFO] [stderr] Checking getrandom v0.2.11 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling clap_derive v4.5.45 [INFO] [stderr] Checking tokio v1.42.1 [INFO] [stderr] Checking axum-core v0.4.5 [INFO] [stderr] Checking clap v4.5.45 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking hyper v1.7.0 [INFO] [stderr] Checking tokio-util v0.7.16 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking tower-http v0.5.2 [INFO] [stderr] Checking hyper-util v0.1.16 [INFO] [stderr] Checking serde_path_to_error v0.1.17 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking axum v0.7.9 [INFO] [stderr] Checking flow_solver v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `oth` [INFO] [stdout] --> src/gen.rs:7:20 [INFO] [stdout] | [INFO] [stdout] 7 | fn unite(self, oth: Self, u: usize, v: usize) -> Option { Some(Dummy()) } [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_oth` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/gen.rs:7:31 [INFO] [stdout] | [INFO] [stdout] 7 | fn unite(self, oth: Self, u: usize, v: usize) -> Option { Some(Dummy()) } [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/gen.rs:7:41 [INFO] [stdout] | [INFO] [stdout] 7 | fn unite(self, oth: Self, u: usize, v: usize) -> Option { Some(Dummy()) } [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `hash_multiplier` is never read [INFO] [stdout] --> src/search/mod.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct SearchFlow { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 33 | hash_multiplier: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SearchFlow` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_degree` is never used [INFO] [stdout] --> src/search/mod.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 38 | impl SearchFlow { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | fn get_degree(&self, u: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/modnum.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | return Self(if sum >= HASH_MODULO { sum - HASH_MODULO } else { sum }); [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] 13 - return Self(if sum >= HASH_MODULO { sum - HASH_MODULO } else { sum }); [INFO] [stdout] 13 + Self(if sum >= HASH_MODULO { sum - HASH_MODULO } else { sum }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/modnum.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | return Self(if diff < 0 { diff + HASH_MODULO } else { diff }); [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] 22 - return Self(if diff < 0 { diff + HASH_MODULO } else { diff }); [INFO] [stdout] 22 + Self(if diff < 0 { diff + HASH_MODULO } else { diff }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/modnum.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | return Self(((self.0 as i64) * (oth.0 as i64) % (HASH_MODULO as i64)) as i32); [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] 30 - return Self(((self.0 as i64) * (oth.0 as i64) % (HASH_MODULO as i64)) as i32); [INFO] [stdout] 30 + Self(((self.0 as i64) * (oth.0 as i64) % (HASH_MODULO as i64)) as i32) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/mod.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | / return Self { [INFO] [stdout] 84 | | h, w, heads, dsu, [INFO] [stdout] 85 | | down: vec![false; h * w], [INFO] [stdout] 86 | | right: vec![false; h * w], [INFO] [stdout] ... | [INFO] [stdout] 91 | | config, [INFO] [stdout] 92 | | }; [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] 83 ~ Self { [INFO] [stdout] 84 + h, w, heads, dsu, [INFO] [stdout] 85 + down: vec![false; h * w], [INFO] [stdout] 86 + right: vec![false; h * w], [INFO] [stdout] 87 + search_order, [INFO] [stdout] 88 + search_depth: 0, [INFO] [stdout] 89 + diagonal_head_count, [INFO] [stdout] 90 + hash_multiplier, [INFO] [stdout] 91 + config, [INFO] [stdout] 92 ~ } [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/search/mod.rs:39:36 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn from_with_config(board: &Vec>, config: SearchConfig) -> Self { [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] 39 - pub fn from_with_config(board: &Vec>, config: SearchConfig) -> Self { [INFO] [stdout] 39 + pub fn from_with_config(board: &[Vec], config: SearchConfig) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchFlow` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/search/mod.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn len(&self) -> usize { self.h * self.w } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/search/mod.rs:109:11 [INFO] [stdout] | [INFO] [stdout] 109 | ((u % self.w > 0 && self.right[u - 1]) as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `!u.is_multiple_of(self.w)` [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 boolean expression can be simplified [INFO] [stdout] --> src/search/mod.rs:130:16 [INFO] [stdout] | [INFO] [stdout] 130 | if right && up && self.right[u - self.w] || [INFO] [stdout] | ________________^ [INFO] [stdout] 131 | | right && up && self.down[u - self.w + 1] || [INFO] [stdout] | |________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 130 - if right && up && self.right[u - self.w] || [INFO] [stdout] 131 - right && up && self.down[u - self.w + 1] || [INFO] [stdout] 130 + if !(!right || !up || !self.right[u - self.w] && !self.down[u - self.w + 1]) || [INFO] [stdout] | [INFO] [stdout] 130 - if right && up && self.right[u - self.w] || [INFO] [stdout] 131 - right && up && self.down[u - self.w + 1] || [INFO] [stdout] 130 + if (self.down[u - self.w + 1] || self.right[u - self.w]) && up && right || [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/mod.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | return true; [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] 170 - return true; [INFO] [stdout] 170 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/search/mod.rs:118:20 [INFO] [stdout] | [INFO] [stdout] 118 | let left = u % self.w > 0 && self.right[u - 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `!u.is_multiple_of(self.w)` [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] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/search/mod.rs:125:21 [INFO] [stdout] | [INFO] [stdout] 125 | right && (u + 1) % self.w == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(u + 1).is_multiple_of(self.w)` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/search/mod.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | / if self.config.use_diagonals { [INFO] [stdout] 138 | | if down && left && self.diagonal_head_count[0][u / self.w + u % self.w] == 0 || [INFO] [stdout] 139 | | down && right && self.diagonal_head_count[1][u / self.w + self.w - u % self.w] == 0 { [INFO] [stdout] 140 | | return false; [INFO] [stdout] 141 | | } [INFO] [stdout] 142 | | } [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] 137 ~ if self.config.use_diagonals [INFO] [stdout] 138 ~ && (down && left && self.diagonal_head_count[0][u / self.w + u % self.w] == 0 || [INFO] [stdout] 139 ~ down && right && self.diagonal_head_count[1][u / self.w + self.w - u % self.w] == 0) { [INFO] [stdout] 140 | return false; [INFO] [stdout] 141 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/mod.rs:287:9 [INFO] [stdout] | [INFO] [stdout] 287 | return false; [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] 287 - return false; [INFO] [stdout] 287 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/mod.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | return !self.config.use_vcut || !self.vcut(); [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] 291 - return !self.config.use_vcut || !self.vcut(); [INFO] [stdout] 291 + !self.config.use_vcut || !self.vcut() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/mod.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | return result; [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] 314 - return result; [INFO] [stdout] 314 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dsu.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | return false; [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] 73 - return false; [INFO] [stdout] 73 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gen.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | / return Self { [INFO] [stdout] 42 | | h, w, [INFO] [stdout] 43 | | heads: vec![false; h * w], [INFO] [stdout] 44 | | dsu: UnionFind::from(vec![Dummy(); h * w]), [INFO] [stdout] ... | [INFO] [stdout] 49 | | allow_zigzag, [INFO] [stdout] 50 | | }; [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] 41 ~ Self { [INFO] [stdout] 42 + h, w, [INFO] [stdout] 43 + heads: vec![false; h * w], [INFO] [stdout] 44 + dsu: UnionFind::from(vec![Dummy(); h * w]), [INFO] [stdout] 45 + down: vec![false; h * w], [INFO] [stdout] 46 + right: vec![false; h * w], [INFO] [stdout] 47 + search_order, [INFO] [stdout] 48 + search_depth: 0, [INFO] [stdout] 49 + allow_zigzag, [INFO] [stdout] 50 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GenFlow` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/gen.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn len(&self) -> usize { self.h * self.w } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gen.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | ((u % self.w > 0 && self.right[u - 1]) as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `!u.is_multiple_of(self.w)` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gen.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | return true; [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] 110 - return true; [INFO] [stdout] 110 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gen.rs:70:21 [INFO] [stdout] | [INFO] [stdout] 70 | right && (u + 1) % self.w == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(u + 1).is_multiple_of(self.w)` [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] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gen.rs:84:24 [INFO] [stdout] | [INFO] [stdout] 84 | if down && u % self.w > 0 && self.right[u - 1] && self.down[u - 1] { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `!u.is_multiple_of(self.w)` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gen.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | return board; [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] 152 - return board; [INFO] [stdout] 152 + board [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gen.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | return result; [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] 171 - return result; [INFO] [stdout] 171 + result [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/lib.rs:43:15 [INFO] [stdout] | [INFO] [stdout] 43 | fn ccw(board: &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] 43 - fn ccw(board: &Vec>) -> Vec> { [INFO] [stdout] 43 + fn ccw(board: &[Vec]) -> Vec> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | / if cfg.use_table { [INFO] [stdout] 62 | | if visited.contains(&state.get_state()) { [INFO] [stdout] 63 | | return false; [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ if cfg.use_table [INFO] [stdout] 62 ~ && visited.contains(&state.get_state()) { [INFO] [stdout] 63 | return false; [INFO] [stdout] 64 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/lib.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 68 | if *num_nodes % period == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(*num_nodes).is_multiple_of(period)` [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] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `oth` [INFO] [stdout] --> src/gen.rs:7:20 [INFO] [stdout] | [INFO] [stdout] 7 | fn unite(self, oth: Self, u: usize, v: usize) -> Option { Some(Dummy()) } [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_oth` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/gen.rs:7:31 [INFO] [stdout] | [INFO] [stdout] 7 | fn unite(self, oth: Self, u: usize, v: usize) -> Option { Some(Dummy()) } [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/gen.rs:7:41 [INFO] [stdout] | [INFO] [stdout] 7 | fn unite(self, oth: Self, u: usize, v: usize) -> Option { Some(Dummy()) } [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `hash_multiplier` is never read [INFO] [stdout] --> src/search/mod.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct SearchFlow { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 33 | hash_multiplier: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SearchFlow` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_degree` is never used [INFO] [stdout] --> src/search/mod.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 38 | impl SearchFlow { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | fn get_degree(&self, u: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/modnum.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | return Self(if sum >= HASH_MODULO { sum - HASH_MODULO } else { sum }); [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] 13 - return Self(if sum >= HASH_MODULO { sum - HASH_MODULO } else { sum }); [INFO] [stdout] 13 + Self(if sum >= HASH_MODULO { sum - HASH_MODULO } else { sum }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/modnum.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | return Self(if diff < 0 { diff + HASH_MODULO } else { diff }); [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] 22 - return Self(if diff < 0 { diff + HASH_MODULO } else { diff }); [INFO] [stdout] 22 + Self(if diff < 0 { diff + HASH_MODULO } else { diff }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/modnum.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | return Self(((self.0 as i64) * (oth.0 as i64) % (HASH_MODULO as i64)) as i32); [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] 30 - return Self(((self.0 as i64) * (oth.0 as i64) % (HASH_MODULO as i64)) as i32); [INFO] [stdout] 30 + Self(((self.0 as i64) * (oth.0 as i64) % (HASH_MODULO as i64)) as i32) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/mod.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | / return Self { [INFO] [stdout] 84 | | h, w, heads, dsu, [INFO] [stdout] 85 | | down: vec![false; h * w], [INFO] [stdout] 86 | | right: vec![false; h * w], [INFO] [stdout] ... | [INFO] [stdout] 91 | | config, [INFO] [stdout] 92 | | }; [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] 83 ~ Self { [INFO] [stdout] 84 + h, w, heads, dsu, [INFO] [stdout] 85 + down: vec![false; h * w], [INFO] [stdout] 86 + right: vec![false; h * w], [INFO] [stdout] 87 + search_order, [INFO] [stdout] 88 + search_depth: 0, [INFO] [stdout] 89 + diagonal_head_count, [INFO] [stdout] 90 + hash_multiplier, [INFO] [stdout] 91 + config, [INFO] [stdout] 92 ~ } [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/search/mod.rs:39:36 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn from_with_config(board: &Vec>, config: SearchConfig) -> Self { [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] 39 - pub fn from_with_config(board: &Vec>, config: SearchConfig) -> Self { [INFO] [stdout] 39 + pub fn from_with_config(board: &[Vec], config: SearchConfig) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchFlow` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/search/mod.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn len(&self) -> usize { self.h * self.w } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/search/mod.rs:109:11 [INFO] [stdout] | [INFO] [stdout] 109 | ((u % self.w > 0 && self.right[u - 1]) as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `!u.is_multiple_of(self.w)` [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 boolean expression can be simplified [INFO] [stdout] --> src/search/mod.rs:130:16 [INFO] [stdout] | [INFO] [stdout] 130 | if right && up && self.right[u - self.w] || [INFO] [stdout] | ________________^ [INFO] [stdout] 131 | | right && up && self.down[u - self.w + 1] || [INFO] [stdout] | |________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 130 - if right && up && self.right[u - self.w] || [INFO] [stdout] 131 - right && up && self.down[u - self.w + 1] || [INFO] [stdout] 130 + if !(!right || !up || !self.right[u - self.w] && !self.down[u - self.w + 1]) || [INFO] [stdout] | [INFO] [stdout] 130 - if right && up && self.right[u - self.w] || [INFO] [stdout] 131 - right && up && self.down[u - self.w + 1] || [INFO] [stdout] 130 + if (self.down[u - self.w + 1] || self.right[u - self.w]) && up && right || [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/mod.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | return true; [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] 170 - return true; [INFO] [stdout] 170 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/search/mod.rs:118:20 [INFO] [stdout] | [INFO] [stdout] 118 | let left = u % self.w > 0 && self.right[u - 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `!u.is_multiple_of(self.w)` [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] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/search/mod.rs:125:21 [INFO] [stdout] | [INFO] [stdout] 125 | right && (u + 1) % self.w == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(u + 1).is_multiple_of(self.w)` [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/search/mod.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | / if self.config.use_diagonals { [INFO] [stdout] 138 | | if down && left && self.diagonal_head_count[0][u / self.w + u % self.w] == 0 || [INFO] [stdout] 139 | | down && right && self.diagonal_head_count[1][u / self.w + self.w - u % self.w] == 0 { [INFO] [stdout] 140 | | return false; [INFO] [stdout] 141 | | } [INFO] [stdout] 142 | | } [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] 137 ~ if self.config.use_diagonals [INFO] [stdout] 138 ~ && (down && left && self.diagonal_head_count[0][u / self.w + u % self.w] == 0 || [INFO] [stdout] 139 ~ down && right && self.diagonal_head_count[1][u / self.w + self.w - u % self.w] == 0) { [INFO] [stdout] 140 | return false; [INFO] [stdout] 141 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/mod.rs:287:9 [INFO] [stdout] | [INFO] [stdout] 287 | return false; [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] 287 - return false; [INFO] [stdout] 287 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/mod.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | return !self.config.use_vcut || !self.vcut(); [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] 291 - return !self.config.use_vcut || !self.vcut(); [INFO] [stdout] 291 + !self.config.use_vcut || !self.vcut() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search/mod.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | return result; [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] 314 - return result; [INFO] [stdout] 314 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dsu.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | return false; [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] 73 - return false; [INFO] [stdout] 73 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gen.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | / return Self { [INFO] [stdout] 42 | | h, w, [INFO] [stdout] 43 | | heads: vec![false; h * w], [INFO] [stdout] 44 | | dsu: UnionFind::from(vec![Dummy(); h * w]), [INFO] [stdout] ... | [INFO] [stdout] 49 | | allow_zigzag, [INFO] [stdout] 50 | | }; [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] 41 ~ Self { [INFO] [stdout] 42 + h, w, [INFO] [stdout] 43 + heads: vec![false; h * w], [INFO] [stdout] 44 + dsu: UnionFind::from(vec![Dummy(); h * w]), [INFO] [stdout] 45 + down: vec![false; h * w], [INFO] [stdout] 46 + right: vec![false; h * w], [INFO] [stdout] 47 + search_order, [INFO] [stdout] 48 + search_depth: 0, [INFO] [stdout] 49 + allow_zigzag, [INFO] [stdout] 50 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GenFlow` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/gen.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn len(&self) -> usize { self.h * self.w } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gen.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | ((u % self.w > 0 && self.right[u - 1]) as usize) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `!u.is_multiple_of(self.w)` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gen.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | return true; [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] 110 - return true; [INFO] [stdout] 110 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gen.rs:70:21 [INFO] [stdout] | [INFO] [stdout] 70 | right && (u + 1) % self.w == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(u + 1).is_multiple_of(self.w)` [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] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/gen.rs:84:24 [INFO] [stdout] | [INFO] [stdout] 84 | if down && u % self.w > 0 && self.right[u - 1] && self.down[u - 1] { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `!u.is_multiple_of(self.w)` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gen.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | return board; [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] 152 - return board; [INFO] [stdout] 152 + board [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/gen.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | return result; [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] 171 - return result; [INFO] [stdout] 171 + result [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/lib.rs:43:15 [INFO] [stdout] | [INFO] [stdout] 43 | fn ccw(board: &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] 43 - fn ccw(board: &Vec>) -> Vec> { [INFO] [stdout] 43 + fn ccw(board: &[Vec]) -> Vec> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | / if cfg.use_table { [INFO] [stdout] 62 | | if visited.contains(&state.get_state()) { [INFO] [stdout] 63 | | return false; [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ if cfg.use_table [INFO] [stdout] 62 ~ && visited.contains(&state.get_state()) { [INFO] [stdout] 63 | return false; [INFO] [stdout] 64 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/lib.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 68 | if *num_nodes % period == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `(*num_nodes).is_multiple_of(period)` [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] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::HashSet` and `time::Instant` [INFO] [stdout] --> src/main.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{time::Instant, collections::HashSet}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::HashSet` and `time::Instant` [INFO] [stdout] --> src/main.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{time::Instant, collections::HashSet}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `it` [INFO] [stdout] --> src/main.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | for it in 0..16 { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_it` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | let mut board: Vec> = input.lines().map(|line| { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `h` [INFO] [stdout] --> src/main.rs:67:14 [INFO] [stdout] | [INFO] [stdout] 67 | let (h, w, down, right) = { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_h` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `w` [INFO] [stdout] --> src/main.rs:67:17 [INFO] [stdout] | [INFO] [stdout] 67 | let (h, w, down, right) = { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_w` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `down` [INFO] [stdout] --> src/main.rs:67:20 [INFO] [stdout] | [INFO] [stdout] 67 | let (h, w, down, right) = { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_down` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> src/main.rs:67:26 [INFO] [stdout] | [INFO] [stdout] 67 | let (h, w, down, right) = { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_right` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | return false; [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] 32 - return false; [INFO] [stdout] 32 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `it` [INFO] [stdout] --> src/main.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | for it in 0..16 { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_it` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | let mut board: Vec> = input.lines().map(|line| { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `h` [INFO] [stdout] --> src/main.rs:67:14 [INFO] [stdout] | [INFO] [stdout] 67 | let (h, w, down, right) = { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_h` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `w` [INFO] [stdout] --> src/main.rs:67:17 [INFO] [stdout] | [INFO] [stdout] 67 | let (h, w, down, right) = { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_w` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `down` [INFO] [stdout] --> src/main.rs:67:20 [INFO] [stdout] | [INFO] [stdout] 67 | let (h, w, down, right) = { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_down` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> src/main.rs:67:26 [INFO] [stdout] | [INFO] [stdout] 67 | let (h, w, down, right) = { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_right` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | return false; [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] 32 - return false; [INFO] [stdout] 32 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.35s [INFO] running `Command { std: "docker" "inspect" "9b7a8c26620fd05125b57b1815484e3cf8419d6f57ca9ef69f3c9f7691fe8771", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9b7a8c26620fd05125b57b1815484e3cf8419d6f57ca9ef69f3c9f7691fe8771", kill_on_drop: false }` [INFO] [stdout] 9b7a8c26620fd05125b57b1815484e3cf8419d6f57ca9ef69f3c9f7691fe8771