[INFO] fetching crate ms_toollib 1.5.3... [INFO] linting ms_toollib-1.5.3 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate ms_toollib 1.5.3 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate ms_toollib 1.5.3 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate ms_toollib 1.5.3 [INFO] tweaked toml for crates.io crate ms_toollib 1.5.3 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate ms_toollib 1.5.3 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 ms_toollib 1.5.3 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 scan_fmt v0.2.6 [INFO] [stderr] Downloaded dyn-hash v0.2.2 [INFO] [stderr] Downloaded derive-new v0.5.9 [INFO] [stderr] Downloaded anymap3 v1.0.1 [INFO] [stderr] Downloaded anymap2 v0.13.0 [INFO] [stderr] Downloaded liquid-derive v0.26.8 [INFO] [stderr] Downloaded tract-hir v0.21.13 [INFO] [stderr] Downloaded liquid-core v0.26.8 [INFO] [stderr] Downloaded tract-onnx v0.21.13 [INFO] [stderr] Downloaded liquid-lib v0.26.8 [INFO] [stderr] Downloaded tract-data v0.21.13 [INFO] [stderr] Downloaded tract-nnef v0.21.13 [INFO] [stderr] Downloaded kstring v2.0.2 [INFO] [stderr] Downloaded tract-core v0.21.13 [INFO] [stderr] Downloaded string-interner v0.15.0 [INFO] [stderr] Downloaded tract-onnx-opl v0.21.13 [INFO] [stderr] Downloaded liquid v0.26.8 [INFO] [stderr] Downloaded tract-linalg v0.21.13 [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] 2219666f25aa5a083a02fa5aa2e533d661ae0c97e3578ed85c895c9cb18aba06 [INFO] running `Command { std: "docker" "start" "-a" "2219666f25aa5a083a02fa5aa2e533d661ae0c97e3578ed85c895c9cb18aba06", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2219666f25aa5a083a02fa5aa2e533d661ae0c97e3578ed85c895c9cb18aba06", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2219666f25aa5a083a02fa5aa2e533d661ae0c97e3578ed85c895c9cb18aba06", kill_on_drop: false }` [INFO] [stdout] 2219666f25aa5a083a02fa5aa2e533d661ae0c97e3578ed85c895c9cb18aba06 [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] 74cf3e292393ecd0b45d43c9cc9e9393425d88c22d96bf78eaddefe00d3f3eb2 [INFO] running `Command { std: "docker" "start" "-a" "74cf3e292393ecd0b45d43c9cc9e9393425d88c22d96bf78eaddefe00d3f3eb2", kill_on_drop: false }` [INFO] [stderr] Compiling libm v0.2.11 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling syn v2.0.108 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling doc-comment v0.3.4 [INFO] [stderr] Compiling anymap2 v0.13.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling tinyvec v1.10.0 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Compiling time v0.3.44 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking rawpointer v0.2.1 [INFO] [stderr] Compiling cc v1.2.44 [INFO] [stderr] Compiling half v2.4.1 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Compiling pest_generator v2.8.3 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking scan_fmt v0.2.6 [INFO] [stderr] Checking string-interner v0.15.0 [INFO] [stderr] Checking ndarray v0.16.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling liquid-derive v0.26.8 [INFO] [stderr] Compiling pest_derive v2.8.3 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking strength_reduce v0.2.4 [INFO] [stderr] Checking dyn-hash v0.2.2 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Checking transpose v0.2.3 [INFO] [stderr] Checking primal-check v0.3.4 [INFO] [stderr] Compiling derive-new v0.5.9 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Checking log v0.4.28 [INFO] [stderr] Checking bit-set v0.5.3 [INFO] [stderr] Checking rustfft v6.4.1 [INFO] [stderr] Checking anymap3 v1.0.1 [INFO] [stderr] Checking filetime v0.2.26 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Checking rand_distr v0.4.3 [INFO] [stderr] Checking memmap2 v0.9.9 [INFO] [stderr] Checking bencher v0.1.5 [INFO] [stderr] Checking xattr v1.6.1 [INFO] [stderr] Compiling prost-derive v0.11.9 [INFO] [stderr] Checking tar v0.4.44 [INFO] [stderr] Checking tract-data v0.21.13 [INFO] [stderr] Compiling kstring v2.0.2 [INFO] [stderr] Compiling liquid-core v0.26.8 [INFO] [stderr] Checking prost v0.11.9 [INFO] [stderr] Compiling liquid-lib v0.26.8 [INFO] [stderr] Compiling liquid v0.26.8 [INFO] [stderr] Compiling tract-linalg v0.21.13 [INFO] [stderr] Checking tract-core v0.21.13 [INFO] [stderr] Checking tract-nnef v0.21.13 [INFO] [stderr] Checking tract-hir v0.21.13 [INFO] [stderr] Checking tract-onnx-opl v0.21.13 [INFO] [stderr] Checking tract-onnx v0.21.13 [INFO] [stderr] Checking ms_toollib v1.5.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/lib.rs:66:7 [INFO] [stdout] | [INFO] [stdout] 66 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] = note: `#[warn(clippy::non_minimal_cfg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/videos/base_video_metrics.rs:441:19 [INFO] [stdout] | [INFO] [stdout] 441 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/videos/base_video_metrics.rs:462:19 [INFO] [stdout] | [INFO] [stdout] 462 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/videos/base_video_metrics.rs:483:19 [INFO] [stdout] | [INFO] [stdout] 483 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/videos/base_video_metrics.rs:504:19 [INFO] [stdout] | [INFO] [stdout] 504 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/videos/base_video_metrics.rs:525:19 [INFO] [stdout] | [INFO] [stdout] 525 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/lib.rs:66:7 [INFO] [stdout] | [INFO] [stdout] 66 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] = note: `#[warn(clippy::non_minimal_cfg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/utils.rs:919:1 [INFO] [stdout] | [INFO] [stdout] 919 | / /// 忘了干嘛用的,有待重构。和弱可猜有关。 [INFO] [stdout] ... | [INFO] [stdout] 958 | | [INFO] [stdout] | |_^ [INFO] [stdout] 959 | fn cal_cell_and_equation_map(matrix_a: &Vec>) -> (Vec>, Vec>) { [INFO] [stdout] | ---------------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the doc comment should not document function `cal_cell_and_equation_map` then comment it out [INFO] [stdout] | [INFO] [stdout] 919 | // /// 忘了干嘛用的,有待重构。和弱可猜有关。 [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/board.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | mine_num: mine_num, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `mine_num` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `e @ _` pattern can be written as just `e` [INFO] [stdout] --> src/videos/avf_video.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | e @ _ => e as usize + 1, [INFO] [stdout] | ^^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `software @ _` pattern can be written as just `software` [INFO] [stdout] --> src/videos/evf_video.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | software @ _ if software.starts_with("元") => { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `software` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `software @ _` pattern can be written as just `software` [INFO] [stdout] --> src/videos/evf_video.rs:267:13 [INFO] [stdout] | [INFO] [stdout] 267 | software @ _ if software.starts_with("元") => { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `software` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `software @ _` pattern can be written as just `software` [INFO] [stdout] --> src/videos/evf_video.rs:394:13 [INFO] [stdout] | [INFO] [stdout] 394 | software @ _ if software.starts_with("元") => { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `software` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/videos/base_video_metrics.rs:441:19 [INFO] [stdout] | [INFO] [stdout] 441 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/videos/base_video_metrics.rs:462:19 [INFO] [stdout] | [INFO] [stdout] 462 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/videos/base_video_metrics.rs:483:19 [INFO] [stdout] | [INFO] [stdout] 483 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/videos/base_video_metrics.rs:504:19 [INFO] [stdout] | [INFO] [stdout] 504 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded sub `cfg` when there is only one condition [INFO] [stdout] --> src/videos/base_video_metrics.rs:525:19 [INFO] [stdout] | [INFO] [stdout] 525 | #[cfg(any(feature = "js"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `feature = "js"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_minimal_cfg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `else` branch is empty [INFO] [stdout] --> src/videos/minesweeper_board.rs:398:15 [INFO] [stdout] | [INFO] [stdout] 398 | } else { [INFO] [stdout] | _______________^ [INFO] [stdout] 399 | | } [INFO] [stdout] | |_____________^ help: you can remove it [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_else [INFO] [stdout] = note: `#[warn(clippy::needless_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/obr.rs:166:15 [INFO] [stdout] | [INFO] [stdout] 166 | while c <= column - 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change it to: `c < column` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/obr.rs:261:15 [INFO] [stdout] | [INFO] [stdout] 261 | while r <= row - 1 { [INFO] [stdout] | ^^^^^^^^^^^^ help: change it to: `r < row` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/obr.rs:525:50 [INFO] [stdout] | [INFO] [stdout] 525 | if n * y / 4 <= *line + 1 && *line + 1 <= max_x + n * y / 4 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `*line < max_x + n * y / 4` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/utils.rs:919:1 [INFO] [stdout] | [INFO] [stdout] 919 | / /// 忘了干嘛用的,有待重构。和弱可猜有关。 [INFO] [stdout] ... | [INFO] [stdout] 958 | | [INFO] [stdout] | |_^ [INFO] [stdout] 959 | fn cal_cell_and_equation_map(matrix_a: &Vec>) -> (Vec>, Vec>) { [INFO] [stdout] | ---------------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the doc comment should not document function `cal_cell_and_equation_map` then comment it out [INFO] [stdout] | [INFO] [stdout] 919 | // /// 忘了干嘛用的,有待重构。和弱可猜有关。 [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/board.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | mine_num: mine_num, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `mine_num` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `e @ _` pattern can be written as just `e` [INFO] [stdout] --> src/videos/avf_video.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | e @ _ => e as usize + 1, [INFO] [stdout] | ^^^^^ help: try: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `software @ _` pattern can be written as just `software` [INFO] [stdout] --> src/videos/evf_video.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | software @ _ if software.starts_with("元") => { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `software` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `software @ _` pattern can be written as just `software` [INFO] [stdout] --> src/videos/evf_video.rs:267:13 [INFO] [stdout] | [INFO] [stdout] 267 | software @ _ if software.starts_with("元") => { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `software` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `software @ _` pattern can be written as just `software` [INFO] [stdout] --> src/videos/evf_video.rs:394:13 [INFO] [stdout] | [INFO] [stdout] 394 | software @ _ if software.starts_with("元") => { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `software` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `else` branch is empty [INFO] [stdout] --> src/videos/minesweeper_board.rs:398:15 [INFO] [stdout] | [INFO] [stdout] 398 | } else { [INFO] [stdout] | _______________^ [INFO] [stdout] 399 | | } [INFO] [stdout] | |_____________^ help: you can remove it [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_else [INFO] [stdout] = note: `#[warn(clippy::needless_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/obr.rs:166:15 [INFO] [stdout] | [INFO] [stdout] 166 | while c <= column - 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change it to: `c < column` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/obr.rs:261:15 [INFO] [stdout] | [INFO] [stdout] 261 | while r <= row - 1 { [INFO] [stdout] | ^^^^^^^^^^^^ help: change it to: `r < row` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/obr.rs:525:50 [INFO] [stdout] | [INFO] [stdout] 525 | if n * y / 4 <= *line + 1 && *line + 1 <= max_x + n * y / 4 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `*line < max_x + n * y / 4` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:114:6 [INFO] [stdout] | [INFO] [stdout] 114 | ) -> (Vec>, Vec<(usize, usize)>, Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:113:17 [INFO] [stdout] | [INFO] [stdout] 113 | game_board: &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] 113 - game_board: &Vec>, [INFO] [stdout] 113 + game_board: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `game_board` [INFO] [stdout] --> src/utils.rs:127:26 [INFO] [stdout] | [INFO] [stdout] 127 | for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 127 - for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 127 + for in game_board.iter().take(min(row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `game_board` [INFO] [stdout] --> src/utils.rs:128:30 [INFO] [stdout] | [INFO] [stdout] 128 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 128 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 128 + for in game_board.iter().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `game_board` [INFO] [stdout] --> src/utils.rs:138:30 [INFO] [stdout] | [INFO] [stdout] 138 | for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 138 - for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 138 + for (m, ) in game_board.iter().enumerate().take(min(row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `game_board` [INFO] [stdout] --> src/utils.rs:139:34 [INFO] [stdout] | [INFO] [stdout] 139 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 139 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 139 + for (n, ) in game_board.iter().enumerate().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `ii` is only used to index `matrix_a` [INFO] [stdout] --> src/utils.rs:151:47 [INFO] [stdout] | [INFO] [stdout] 151 | ... for ii in 0..matrix_a_row_num { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 151 - for ii in 0..matrix_a_row_num { [INFO] [stdout] 151 + for in matrix_a.iter_mut().take(matrix_a_row_num) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:173:6 [INFO] [stdout] | [INFO] [stdout] 173 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 174 | | Vec>>, [INFO] [stdout] 175 | | Vec>, [INFO] [stdout] 176 | | Vec>, [INFO] [stdout] 177 | | usize, [INFO] [stdout] 178 | | usize, [INFO] [stdout] 179 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:172:20 [INFO] [stdout] | [INFO] [stdout] 172 | board_of_game: &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] 172 - board_of_game: &Vec>, [INFO] [stdout] 172 + board_of_game: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:195:34 [INFO] [stdout] | [INFO] [stdout] 195 | 'outer: for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 195 - 'outer: for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 195 + 'outer: for in board_of_game.iter().take(min(row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:196:30 [INFO] [stdout] | [INFO] [stdout] 196 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 196 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 196 + for in board_of_game.iter().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:206:26 [INFO] [stdout] | [INFO] [stdout] 206 | for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 206 - for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 206 + for in board_of_game.iter().take(min(row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:207:30 [INFO] [stdout] | [INFO] [stdout] 207 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 207 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 207 + for in board_of_game.iter().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:230:18 [INFO] [stdout] | [INFO] [stdout] 230 | for m in max(1, x_0) - 1..min(row, x_0 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 230 - for m in max(1, x_0) - 1..min(row, x_0 + 2) { [INFO] [stdout] 230 + for (m, ) in board_of_game.iter().enumerate().take(min(row, x_0 + 2)).skip(max(1, x_0) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:231:22 [INFO] [stdout] | [INFO] [stdout] 231 | for n in max(1, y_0) - 1..min(column, y_0 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 231 - for n in max(1, y_0) - 1..min(column, y_0 + 2) { [INFO] [stdout] 231 + for (n, ) in board_of_game.iter().enumerate().take(min(column, y_0 + 2)).skip(max(1, y_0) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:255:26 [INFO] [stdout] | [INFO] [stdout] 255 | for m in max(1, max(x_t, x_e)) - 1..min(row, min(x_t + 2, x_e + 2)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 255 - for m in max(1, max(x_t, x_e)) - 1..min(row, min(x_t + 2, x_e + 2)) { [INFO] [stdout] 255 + for in board_of_game.iter().take(min(row, min(x_t + 2, x_e + 2))).skip(max(1, max(x_t, x_e)) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:256:30 [INFO] [stdout] | [INFO] [stdout] 256 | for n in max(1, max(y_t, y_e)) - 1..min(column, min(y_t + 2, y_e + 2)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 256 - for n in max(1, max(y_t, y_e)) - 1..min(column, min(y_t + 2, y_e + 2)) { [INFO] [stdout] 256 + for in board_of_game.iter().take(min(column, min(y_t + 2, y_e + 2))).skip(max(1, max(y_t, y_e)) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:265:30 [INFO] [stdout] | [INFO] [stdout] 265 | for m in max(1, x_t) - 1..min(row, x_t + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 265 - for m in max(1, x_t) - 1..min(row, x_t + 2) { [INFO] [stdout] 265 + for (m, ) in board_of_game.iter().enumerate().take(min(row, x_t + 2)).skip(max(1, x_t) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:266:34 [INFO] [stdout] | [INFO] [stdout] 266 | for n in max(1, y_t) - 1..min(column, y_t + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 266 - for n in max(1, y_t) - 1..min(column, y_t + 2) { [INFO] [stdout] 266 + for (n, ) in board_of_game.iter().enumerate().take(min(column, y_t + 2)).skip(max(1, y_t) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:267:29 [INFO] [stdout] | [INFO] [stdout] 267 | / ... if board_of_game[m][n] == 10 { [INFO] [stdout] 268 | | ... if !matrix_xs[p].contains(&(m, n)) { [INFO] [stdout] 269 | | ... matrix_xs[p].push((m, n)); [INFO] [stdout] 270 | | ... } [INFO] [stdout] 271 | | ... } [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] 267 ~ if board_of_game[m][n] == 10 [INFO] [stdout] 268 ~ && !matrix_xs[p].contains(&(m, n)) { [INFO] [stdout] 269 | matrix_xs[p].push((m, n)); [INFO] [stdout] 270 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:305:6 [INFO] [stdout] | [INFO] [stdout] 305 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 306 | | Vec>>>, [INFO] [stdout] 307 | | Vec>>, [INFO] [stdout] 308 | | Vec>>, [INFO] [stdout] 309 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to pop elements from a `Vec` in a loop [INFO] [stdout] --> src/utils.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 334 | let (t_i, t_j) = buffer.pop().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_while_let_some [INFO] [stdout] = note: `#[warn(clippy::manual_while_let_some)]` on by default [INFO] [stdout] help: consider using a `while..let` loop [INFO] [stdout] | [INFO] [stdout] 333 ~ while let Some((t_i, t_j)) = buffer.pop() { [INFO] [stdout] 334 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `board_mark` [INFO] [stdout] --> src/utils.rs:336:30 [INFO] [stdout] | [INFO] [stdout] 336 | for m in max(1, t_i) - 1..min(row, t_i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 336 - for m in max(1, t_i) - 1..min(row, t_i + 2) { [INFO] [stdout] 336 + for (m, ) in board_mark.iter_mut().enumerate().take(min(row, t_i + 2)).skip(max(1, t_i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `board_mark` [INFO] [stdout] --> src/utils.rs:337:34 [INFO] [stdout] | [INFO] [stdout] 337 | for n in max(1, t_j) - 1..min(column, t_j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 337 - for n in max(1, t_j) - 1..min(column, t_j + 2) { [INFO] [stdout] 337 + for (n, ) in board_mark.iter_mut().enumerate().take(min(column, t_j + 2)).skip(max(1, t_j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to pop elements from a `Vec` in a loop [INFO] [stdout] --> src/utils.rs:367:13 [INFO] [stdout] | [INFO] [stdout] 367 | let seed = block.pop().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_while_let_some [INFO] [stdout] help: consider using a `while..let` loop [INFO] [stdout] | [INFO] [stdout] 366 ~ while let Some(seed) = block.pop() { [INFO] [stdout] 367 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to pop elements from a `Vec` in a loop [INFO] [stdout] --> src/utils.rs:387:13 [INFO] [stdout] | [INFO] [stdout] 387 | let t = buffer.pop().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_while_let_some [INFO] [stdout] help: consider using a `while..let` loop [INFO] [stdout] | [INFO] [stdout] 386 ~ while let Some(t) = buffer.pop() { [INFO] [stdout] 387 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `idj` is used to index `adjacency_matrix` [INFO] [stdout] --> src/utils.rs:407:24 [INFO] [stdout] | [INFO] [stdout] 407 | for idj in t..a_mats.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 407 - for idj in t..a_mats.len() { [INFO] [stdout] 407 + for (idj, ) in adjacency_matrix.iter().enumerate().take(a_mats.len()).skip(t) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `reserve` immediately after creation [INFO] [stdout] --> src/utils.rs:460:5 [INFO] [stdout] | [INFO] [stdout] 460 | / let mut board_1d: Vec = vec![]; [INFO] [stdout] 461 | | board_1d.reserve(area); [INFO] [stdout] | |___________________________^ help: consider using `Vec::with_capacity(/* Space hint */)`: `let mut board_1d: Vec = Vec::with_capacity(area);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#reserve_after_initialization [INFO] [stdout] = note: `#[warn(clippy::reserve_after_initialization)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:477:15 [INFO] [stdout] | [INFO] [stdout] 477 | board_1d: &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] 477 - board_1d: &Vec, [INFO] [stdout] 477 + board_1d: &[i32], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `board` [INFO] [stdout] --> src/utils.rs:492:26 [INFO] [stdout] | [INFO] [stdout] 492 | for j in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 492 - for j in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] 492 + for in board.iter_mut().take(min(row, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `board` [INFO] [stdout] --> src/utils.rs:493:30 [INFO] [stdout] | [INFO] [stdout] 493 | for k in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 493 - for k in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] 493 + for in board.iter_mut().take(min(column, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `reserve` immediately after creation [INFO] [stdout] --> src/utils.rs:512:5 [INFO] [stdout] | [INFO] [stdout] 512 | / let mut board1_dim_2: Vec = vec![]; [INFO] [stdout] 513 | | board1_dim_2.reserve(row * column); [INFO] [stdout] | |_______________________________________^ help: consider using `Vec::with_capacity(/* Space hint */)`: `let mut board1_dim_2: Vec = Vec::with_capacity(row * column);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#reserve_after_initialization [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board1_dim` [INFO] [stdout] --> src/utils.rs:515:14 [INFO] [stdout] | [INFO] [stdout] 515 | for i in 0..pointer { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 515 - for i in 0..pointer { [INFO] [stdout] 515 + for in board1_dim.iter().take(pointer) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board1_dim` [INFO] [stdout] --> src/utils.rs:519:14 [INFO] [stdout] | [INFO] [stdout] 519 | for i in pointer..(row * column - 1) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 519 - for i in pointer..(row * column - 1) { [INFO] [stdout] 519 + for in board1_dim.iter().take((row * column - 1)).skip(pointer) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `board1_dim_2` [INFO] [stdout] --> src/utils.rs:523:14 [INFO] [stdout] | [INFO] [stdout] 523 | for i in 0..(row * column) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 523 - for i in 0..(row * column) { [INFO] [stdout] 523 + for (i, ) in board1_dim_2.iter().enumerate().take((row * column)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `board` [INFO] [stdout] --> src/utils.rs:528:22 [INFO] [stdout] | [INFO] [stdout] 528 | for j in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 528 - for j in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] 528 + for in board.iter_mut().take(min(row, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `board` [INFO] [stdout] --> src/utils.rs:529:26 [INFO] [stdout] | [INFO] [stdout] 529 | for k in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 529 - for k in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] 529 + for in board.iter_mut().take(min(column, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils.rs:552:12 [INFO] [stdout] | [INFO] [stdout] 552 | if x0 == 0 && y0 == 0 [INFO] [stdout] | ____________^ [INFO] [stdout] 553 | | || x0 == 0 && y0 == column - 1 [INFO] [stdout] 554 | | || x0 == row - 1 && y0 == 0 [INFO] [stdout] 555 | | || x0 == row - 1 && y0 == column - 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] 552 - if x0 == 0 && y0 == 0 [INFO] [stdout] 553 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 554 - || x0 == row - 1 && y0 == 0 [INFO] [stdout] 555 - || x0 == row - 1 && y0 == column - 1 [INFO] [stdout] 552 + if !(y0 != 0 && y0 != column - 1 || x0 != 0 && x0 != row - 1) [INFO] [stdout] | [INFO] [stdout] 552 - if x0 == 0 && y0 == 0 [INFO] [stdout] 553 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 554 - || x0 == row - 1 && y0 == 0 [INFO] [stdout] 555 - || x0 == row - 1 && y0 == column - 1 [INFO] [stdout] 552 + if (x0 == row - 1 || x0 == 0) && (y0 == column - 1 || y0 == 0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils.rs:552:12 [INFO] [stdout] | [INFO] [stdout] 552 | if x0 == 0 && y0 == 0 [INFO] [stdout] | ____________^ [INFO] [stdout] 553 | | || x0 == 0 && y0 == column - 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] help: try [INFO] [stdout] | [INFO] [stdout] 552 - if x0 == 0 && y0 == 0 [INFO] [stdout] 553 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 552 + if !(x0 != 0 || y0 != 0 && y0 != column - 1) [INFO] [stdout] | [INFO] [stdout] 552 - if x0 == 0 && y0 == 0 [INFO] [stdout] 553 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 552 + if (y0 == column - 1 || y0 == 0) && x0 == 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:609:20 [INFO] [stdout] | [INFO] [stdout] 609 | board_of_game: &mut 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] 609 - board_of_game: &mut Vec>, [INFO] [stdout] 609 + board_of_game: &mut [Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:625:22 [INFO] [stdout] | [INFO] [stdout] 625 | for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 625 - for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 625 + for (m, ) in board_of_game.iter().enumerate().take(min(row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:626:26 [INFO] [stdout] | [INFO] [stdout] 626 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 626 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 626 + for (n, ) in board_of_game.iter().enumerate().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:689:6 [INFO] [stdout] | [INFO] [stdout] 689 | ) -> (Vec>, Vec<(usize, usize)>, Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:687:15 [INFO] [stdout] | [INFO] [stdout] 687 | matrix_a: &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] 687 ~ matrix_a: &[Vec], [INFO] [stdout] 688 | matrixx: &Vec<(usize, usize)>, [INFO] [stdout] ... [INFO] [stdout] 692 | // 并在内部更改矩阵,合并重复的列 [INFO] [stdout] 693 ~ let mut matrix_a_squeeze = matrix_a.to_owned(); [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/utils.rs:688:14 [INFO] [stdout] | [INFO] [stdout] 688 | matrixx: &Vec<(usize, usize)>, [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] 688 ~ matrixx: &[(usize, usize)], [INFO] [stdout] 689 | ) -> (Vec>, Vec<(usize, usize)>, Vec>) { [INFO] [stdout] ... [INFO] [stdout] 693 | let mut matrix_a_squeeze = matrix_a.clone(); [INFO] [stdout] 694 ~ let mut matrixx_squeeze = matrixx.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils.rs:707:36 [INFO] [stdout] | [INFO] [stdout] 707 | del_cells.sort_by(|a, b| b.cmp(&a)); [INFO] [stdout] | ^^ help: change this to: `a` [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: the loop variable `r` is only used to index `matrix_a_squeeze` [INFO] [stdout] --> src/utils.rs:710:18 [INFO] [stdout] | [INFO] [stdout] 710 | for r in 0..matrix_a_squeeze.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 710 - for r in 0..matrix_a_squeeze.len() { [INFO] [stdout] 710 + for in &mut matrix_a_squeeze { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `matrix_a_squeeze` [INFO] [stdout] --> src/utils.rs:719:18 [INFO] [stdout] | [INFO] [stdout] 719 | for r in 0..matrix_a_squeeze.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 719 - for r in 0..matrix_a_squeeze.len() { [INFO] [stdout] 719 + for in &mut matrix_a_squeeze { [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/utils.rs:727:35 [INFO] [stdout] | [INFO] [stdout] 727 | pub fn cal_all_solution(matrix_a: &Vec>, matrixb: &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] 727 - pub fn cal_all_solution(matrix_a: &Vec>, matrixb: &Vec) -> Vec> { [INFO] [stdout] 727 + pub fn cal_all_solution(matrix_a: &[Vec], matrixb: &Vec) -> 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/utils.rs:727:60 [INFO] [stdout] | [INFO] [stdout] 727 | pub fn cal_all_solution(matrix_a: &Vec>, matrixb: &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] 727 - pub fn cal_all_solution(matrix_a: &Vec>, matrixb: &Vec) -> Vec> { [INFO] [stdout] 727 + pub fn cal_all_solution(matrix_a: &Vec>, matrixb: &[i32]) -> Vec> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `enum_comb_table` [INFO] [stdout] --> src/utils.rs:768:34 [INFO] [stdout] | [INFO] [stdout] 768 | for n in 0..enum_comb_table_len { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 768 - for n in 0..enum_comb_table_len { [INFO] [stdout] 768 + for in enum_comb_table.iter_mut().take(enum_comb_table_len) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `rr` is used to index `matrix_a` [INFO] [stdout] --> src/utils.rs:785:27 [INFO] [stdout] | [INFO] [stdout] 785 | for rr in 0..row { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 785 - for rr in 0..row { [INFO] [stdout] 785 + for (rr, ) in matrix_a.iter().enumerate().take(row) { [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/utils.rs:959:40 [INFO] [stdout] | [INFO] [stdout] 959 | fn cal_cell_and_equation_map(matrix_a: &Vec>) -> (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] 959 - fn cal_cell_and_equation_map(matrix_a: &Vec>) -> (Vec>, Vec>) { [INFO] [stdout] 959 + fn cal_cell_and_equation_map(matrix_a: &[Vec]) -> (Vec>, Vec>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/utils.rs:978:1 [INFO] [stdout] | [INFO] [stdout] 978 | / fn cal_table_minenum_recursion_step( [INFO] [stdout] 979 | | idx: usize, [INFO] [stdout] 980 | | current_amount: usize, [INFO] [stdout] 981 | | table_minenum: &mut [Vec; 2], [INFO] [stdout] ... | [INFO] [stdout] 991 | | mine_vec: &mut Vec, [INFO] [stdout] 992 | | ) -> Result { [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils.rs:1048:13 [INFO] [stdout] | [INFO] [stdout] 1048 | &matrix_a_squeeze, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `matrix_a_squeeze` [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/utils.rs:1049:13 [INFO] [stdout] | [INFO] [stdout] 1049 | &matrix_b, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `matrix_b` [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/utils.rs:1051:13 [INFO] [stdout] | [INFO] [stdout] 1051 | &combination_relationship, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `combination_relationship` [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/utils.rs:1052:13 [INFO] [stdout] | [INFO] [stdout] 1052 | &cell_to_equation_map, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `cell_to_equation_map` [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/utils.rs:1053:13 [INFO] [stdout] | [INFO] [stdout] 1053 | &equation_to_cell_map, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `equation_to_cell_map` [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: parameter is only used in recursion [INFO] [stdout] --> src/utils.rs:986:5 [INFO] [stdout] | [INFO] [stdout] 986 | matrix_b: &Vec, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix_b` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/utils.rs:1049:14 [INFO] [stdout] | [INFO] [stdout] 1049 | &matrix_b, [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:1070:6 [INFO] [stdout] | [INFO] [stdout] 1070 | ) -> Result<([Vec; 2], Vec>), usize> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:1130:9 [INFO] [stdout] | [INFO] [stdout] 1130 | return Err(1); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1130 - return Err(1); [INFO] [stdout] 1130 + Err(1) [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/utils.rs:1067:22 [INFO] [stdout] | [INFO] [stdout] 1067 | matrixx_squeeze: &Vec<(usize, usize)>, [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] 1067 - matrixx_squeeze: &Vec<(usize, usize)>, [INFO] [stdout] 1067 + matrixx_squeeze: &[(usize, usize)], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils.rs:1089:82 [INFO] [stdout] | [INFO] [stdout] 1089 | let (cell_to_equation_map, equation_to_cell_map) = cal_cell_and_equation_map(&matrix_a_squeeze); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `matrix_a_squeeze` [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/utils.rs:1101:9 [INFO] [stdout] | [INFO] [stdout] 1101 | &matrix_a_squeeze, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `matrix_a_squeeze` [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/utils.rs:1102:9 [INFO] [stdout] | [INFO] [stdout] 1102 | &matrix_b, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `matrix_b` [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/utils.rs:1104:9 [INFO] [stdout] | [INFO] [stdout] 1104 | &combination_relationship, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `combination_relationship` [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/utils.rs:1221:42 [INFO] [stdout] | [INFO] [stdout] 1221 | pub fn unsolvable_structure(board_check: &Vec>) -> 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] 1221 - pub fn unsolvable_structure(board_check: &Vec>) -> bool { [INFO] [stdout] 1221 + pub fn unsolvable_structure(board_check: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1234:9 [INFO] [stdout] | [INFO] [stdout] 1234 | / if i < row - 3 { [INFO] [stdout] 1235 | | if board[i][0] == -1 [INFO] [stdout] 1236 | | && board[i][1] == -1 [INFO] [stdout] 1237 | | && board[i + 3][0] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1248 | | } [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] 1234 ~ if i < row - 3 [INFO] [stdout] 1235 ~ && (board[i][0] == -1 [INFO] [stdout] 1236 | && board[i][1] == -1 [INFO] [stdout] ... [INFO] [stdout] 1243 | && board[i + 3][column - 2] == -1 [INFO] [stdout] 1244 ~ && board[i + 1][column - 1] + board[i + 2][column - 1] == -1) [INFO] [stdout] 1245 | { [INFO] [stdout] 1246 | return true; [INFO] [stdout] 1247 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1272:9 [INFO] [stdout] | [INFO] [stdout] 1272 | / if i < row - 3 { [INFO] [stdout] 1273 | | if board[i][2] == -1 [INFO] [stdout] 1274 | | && board[i + 3][2] == -1 [INFO] [stdout] 1275 | | && board[i + 1][0] + board[i + 1][1] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1286 | | } [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] 1272 ~ if i < row - 3 [INFO] [stdout] 1273 ~ && (board[i][2] == -1 [INFO] [stdout] 1274 | && board[i + 3][2] == -1 [INFO] [stdout] ... [INFO] [stdout] 1281 | && board[i + 1][column - 2] + board[i + 2][column - 2] == -1 [INFO] [stdout] 1282 ~ && board[i + 2][column - 2] + board[i + 2][column - 1] == -1) [INFO] [stdout] 1283 | { [INFO] [stdout] 1284 | return true; [INFO] [stdout] 1285 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1290:9 [INFO] [stdout] | [INFO] [stdout] 1290 | / if j < column - 3 { [INFO] [stdout] 1291 | | if board[0][j] == -1 [INFO] [stdout] 1292 | | && board[1][j] == -1 [INFO] [stdout] 1293 | | && board[0][j + 3] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1304 | | } [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] 1290 ~ if j < column - 3 [INFO] [stdout] 1291 ~ && (board[0][j] == -1 [INFO] [stdout] 1292 | && board[1][j] == -1 [INFO] [stdout] ... [INFO] [stdout] 1299 | && board[row - 2][j + 3] == -1 [INFO] [stdout] 1300 ~ && board[row - 1][j + 1] + board[row - 1][j + 2] == -1) [INFO] [stdout] 1301 | { [INFO] [stdout] 1302 | return true; [INFO] [stdout] 1303 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1328:9 [INFO] [stdout] | [INFO] [stdout] 1328 | / if j < column - 3 { [INFO] [stdout] 1329 | | if board[2][j] == -1 [INFO] [stdout] 1330 | | && board[2][j + 3] == -1 [INFO] [stdout] 1331 | | && board[0][j + 1] + board[1][j + 1] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1342 | | } [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] 1328 ~ if j < column - 3 [INFO] [stdout] 1329 ~ && (board[2][j] == -1 [INFO] [stdout] 1330 | && board[2][j + 3] == -1 [INFO] [stdout] ... [INFO] [stdout] 1337 | && board[row - 2][j + 1] + board[row - 2][j + 2] == -1 [INFO] [stdout] 1338 ~ && board[row - 2][j + 2] + board[row - 1][j + 2] == -1) [INFO] [stdout] 1339 | { [INFO] [stdout] 1340 | return true; [INFO] [stdout] 1341 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1388:13 [INFO] [stdout] | [INFO] [stdout] 1388 | / if j < column - 3 { [INFO] [stdout] 1389 | | if board[i][j] == -1 [INFO] [stdout] 1390 | | && board[i + 1][j] == -1 [INFO] [stdout] 1391 | | && board[i + 2][j] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1399 | | } [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] 1388 ~ if j < column - 3 [INFO] [stdout] 1389 ~ && board[i][j] == -1 [INFO] [stdout] 1390 | && board[i + 1][j] == -1 [INFO] [stdout] ... [INFO] [stdout] 1397 | return true; [INFO] [stdout] 1398 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1400:13 [INFO] [stdout] | [INFO] [stdout] 1400 | / if i < row - 3 { [INFO] [stdout] 1401 | | if board[i][j] == -1 [INFO] [stdout] 1402 | | && board[i][j + 1] == -1 [INFO] [stdout] 1403 | | && board[i][j + 2] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1411 | | } [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] 1400 ~ if i < row - 3 [INFO] [stdout] 1401 ~ && board[i][j] == -1 [INFO] [stdout] 1402 | && board[i][j + 1] == -1 [INFO] [stdout] ... [INFO] [stdout] 1409 | return true; [INFO] [stdout] 1410 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1424:13 [INFO] [stdout] | [INFO] [stdout] 1424 | / if j < column - 3 && i < row - 3 { [INFO] [stdout] 1425 | | if board[i][j] == -1 [INFO] [stdout] 1426 | | && board[i + 3][j] == -1 [INFO] [stdout] 1427 | | && board[i][j + 3] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1435 | | } [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] 1424 ~ if j < column - 3 && i < row - 3 [INFO] [stdout] 1425 ~ && board[i][j] == -1 [INFO] [stdout] 1426 | && board[i + 3][j] == -1 [INFO] [stdout] ... [INFO] [stdout] 1433 | return true; [INFO] [stdout] 1434 ~ } [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/utils.rs:1443:31 [INFO] [stdout] | [INFO] [stdout] 1443 | pub fn cal_bbbv_exp(board_in: &Vec>) -> usize { [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] 1443 ~ pub fn cal_bbbv_exp(board_in: &[Vec]) -> usize { [INFO] [stdout] 1444 ~ let mut board = board_in.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1461:32 [INFO] [stdout] | [INFO] [stdout] 1461 | } else if board_in[x - 1][j] == 0 { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 1462 | | if board[x - 1][j] < min_op_id { [INFO] [stdout] 1463 | | if flag_op { [INFO] [stdout] 1464 | | op_list[min_op_id as usize] = false; [INFO] [stdout] ... | [INFO] [stdout] 1470 | | } [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] 1461 ~ } else if board_in[x - 1][j] == 0 [INFO] [stdout] 1462 ~ && board[x - 1][j] < min_op_id { [INFO] [stdout] 1463 | if flag_op { [INFO] [stdout] ... [INFO] [stdout] 1468 | min_op_id = board[x - 1][j]; [INFO] [stdout] 1469 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1477:28 [INFO] [stdout] | [INFO] [stdout] 1477 | } else if board_in[x][y - 1] == 0 { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 1478 | | if board[x][y - 1] < min_op_id { [INFO] [stdout] 1479 | | if flag_op { [INFO] [stdout] 1480 | | op_list[min_op_id as usize] = false; [INFO] [stdout] ... | [INFO] [stdout] 1485 | | } [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] 1477 ~ } else if board_in[x][y - 1] == 0 [INFO] [stdout] 1478 ~ && board[x][y - 1] < min_op_id { [INFO] [stdout] 1479 | if flag_op { [INFO] [stdout] ... [INFO] [stdout] 1483 | } [INFO] [stdout] 1484 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/utils.rs:1489:29 [INFO] [stdout] | [INFO] [stdout] 1489 | op_list[op_id as usize] = true; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `op_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1502:32 [INFO] [stdout] | [INFO] [stdout] 1502 | } else if board_in[x + 1][j] == 0 { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 1503 | | if board[x + 1][j] < board[x][y] { [INFO] [stdout] 1504 | | op_list[board[x][y] as usize] = false; [INFO] [stdout] 1505 | | board[x][y] = board[x + 1][j]; [INFO] [stdout] 1506 | | } [INFO] [stdout] 1507 | | } [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] 1502 ~ } else if board_in[x + 1][j] == 0 [INFO] [stdout] 1503 ~ && board[x + 1][j] < board[x][y] { [INFO] [stdout] 1504 | op_list[board[x][y] as usize] = false; [INFO] [stdout] 1505 | board[x][y] = board[x + 1][j]; [INFO] [stdout] 1506 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1514:28 [INFO] [stdout] | [INFO] [stdout] 1514 | } else if board_in[x][y + 1] == 0 { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 1515 | | if board[x][y + 1] < board[x][y] { [INFO] [stdout] 1516 | | op_list[board[x][y] as usize] = false; [INFO] [stdout] 1517 | | board[x][y] = board[x][y + 1]; [INFO] [stdout] 1518 | | } [INFO] [stdout] 1519 | | } [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] 1514 ~ } else if board_in[x][y + 1] == 0 [INFO] [stdout] 1515 ~ && board[x][y + 1] < board[x][y] { [INFO] [stdout] 1516 | op_list[board[x][y] as usize] = false; [INFO] [stdout] 1517 | board[x][y] = board[x][y + 1]; [INFO] [stdout] 1518 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `op_list` [INFO] [stdout] --> src/utils.rs:1524:14 [INFO] [stdout] | [INFO] [stdout] 1524 | for i in 0..op_id + 1 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1524 - for i in 0..op_id + 1 { [INFO] [stdout] 1524 + for in op_list.iter().take(op_id + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:1536:30 [INFO] [stdout] | [INFO] [stdout] 1536 | pub fn legalize_board(board: &mut 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] 1536 - pub fn legalize_board(board: &mut Vec>) { [INFO] [stdout] 1536 + pub fn legalize_board(board: &mut [Vec]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board` [INFO] [stdout] --> src/utils.rs:1546:26 [INFO] [stdout] | [INFO] [stdout] 1546 | for i in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1546 - for i in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] 1546 + for in board.iter().take(min(row, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `board` [INFO] [stdout] --> src/utils.rs:1547:30 [INFO] [stdout] | [INFO] [stdout] 1547 | for j in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1547 - for j in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] 1547 + for in board.iter().take(min(column, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:1590:6 [INFO] [stdout] | [INFO] [stdout] 1590 | ) -> (Vec>>, Vec>, Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `matrix_a` [INFO] [stdout] --> src/utils.rs:1664:22 [INFO] [stdout] | [INFO] [stdout] 1664 | for k in 0..matrix_a.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1664 - for k in 0..matrix_a.len() { [INFO] [stdout] 1664 + for in &mut matrix_a { [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/utils.rs:1697:20 [INFO] [stdout] | [INFO] [stdout] 1697 | board_of_game: &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] 1697 ~ board_of_game: &[Vec], [INFO] [stdout] 1698 | xy: &(usize, usize), [INFO] [stdout] ... [INFO] [stdout] 1708 | } [INFO] [stdout] 1709 ~ let mut board_of_game_clone = board_of_game.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:1702:14 [INFO] [stdout] | [INFO] [stdout] 1702 | for m in max(1, xy.0) - 1..min(row, xy.0 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1702 - for m in max(1, xy.0) - 1..min(row, xy.0 + 2) { [INFO] [stdout] 1702 + for in board_of_game.iter().take(min(row, xy.0 + 2)).skip(max(1, xy.0) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:1703:18 [INFO] [stdout] | [INFO] [stdout] 1703 | for n in max(1, xy.1) - 1..min(column, xy.1 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1703 - for n in max(1, xy.1) - 1..min(column, xy.1 + 2) { [INFO] [stdout] 1703 + for in board_of_game.iter().take(min(column, xy.1 + 2)).skip(max(1, xy.1) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `mm` is only used to index `board_of_game_clone` [INFO] [stdout] --> src/utils.rs:1717:31 [INFO] [stdout] | [INFO] [stdout] 1717 | for mm in max(1, m) - 1..min(row, m + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1717 - for mm in max(1, m) - 1..min(row, m + 2) { [INFO] [stdout] 1717 + for in board_of_game_clone.iter().take(min(row, m + 2)).skip(max(1, m) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `nn` is only used to index `board_of_game_clone` [INFO] [stdout] --> src/utils.rs:1718:35 [INFO] [stdout] | [INFO] [stdout] 1718 | for nn in max(1, n) - 1..min(column, n + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1718 - for nn in max(1, n) - 1..min(column, n + 2) { [INFO] [stdout] 1718 + for in board_of_game_clone.iter().take(min(column, n + 2)).skip(max(1, n) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:1760:5 [INFO] [stdout] | [INFO] [stdout] 1760 | return mid_num > 0; [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] 1760 - return mid_num > 0; [INFO] [stdout] 1760 + mid_num > 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1740:5 [INFO] [stdout] | [INFO] [stdout] 1740 | / if pos.0 > 0 { [INFO] [stdout] 1741 | | if mid_num < surround_cell_num(board_of_game, (pos.0 - 1, pos.1)) { [INFO] [stdout] 1742 | | return false; [INFO] [stdout] 1743 | | } [INFO] [stdout] 1744 | | } [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] 1740 ~ if pos.0 > 0 [INFO] [stdout] 1741 ~ && mid_num < surround_cell_num(board_of_game, (pos.0 - 1, pos.1)) { [INFO] [stdout] 1742 | return false; [INFO] [stdout] 1743 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1745:5 [INFO] [stdout] | [INFO] [stdout] 1745 | / if pos.1 > 0 { [INFO] [stdout] 1746 | | if mid_num < surround_cell_num(board_of_game, (pos.0, pos.1 - 1)) { [INFO] [stdout] 1747 | | return false; [INFO] [stdout] 1748 | | } [INFO] [stdout] 1749 | | } [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] 1745 ~ if pos.1 > 0 [INFO] [stdout] 1746 ~ && mid_num < surround_cell_num(board_of_game, (pos.0, pos.1 - 1)) { [INFO] [stdout] 1747 | return false; [INFO] [stdout] 1748 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1750:5 [INFO] [stdout] | [INFO] [stdout] 1750 | / if pos.0 + 1 < row { [INFO] [stdout] 1751 | | if mid_num < surround_cell_num(board_of_game, (pos.0 + 1, pos.1)) { [INFO] [stdout] 1752 | | return false; [INFO] [stdout] 1753 | | } [INFO] [stdout] 1754 | | } [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] 1750 ~ if pos.0 + 1 < row [INFO] [stdout] 1751 ~ && mid_num < surround_cell_num(board_of_game, (pos.0 + 1, pos.1)) { [INFO] [stdout] 1752 | return false; [INFO] [stdout] 1753 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1755:5 [INFO] [stdout] | [INFO] [stdout] 1755 | / if pos.1 + 1 < column { [INFO] [stdout] 1756 | | if mid_num < surround_cell_num(board_of_game, (pos.0, pos.1 + 1)) { [INFO] [stdout] 1757 | | return false; [INFO] [stdout] 1758 | | } [INFO] [stdout] 1759 | | } [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] 1755 ~ if pos.1 + 1 < column [INFO] [stdout] 1756 ~ && mid_num < surround_cell_num(board_of_game, (pos.0, pos.1 + 1)) { [INFO] [stdout] 1757 | return false; [INFO] [stdout] 1758 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:1783:9 [INFO] [stdout] | [INFO] [stdout] 1783 | return num; [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] 1783 - return num; [INFO] [stdout] 1783 + num [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:1785:9 [INFO] [stdout] | [INFO] [stdout] 1785 | return -1; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1785 - return -1; [INFO] [stdout] 1785 + -1 [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/utils.rs:1765:37 [INFO] [stdout] | [INFO] [stdout] 1765 | fn surround_cell_num(board_of_game: &Vec>, pos: (usize, usize)) -> i8 { [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] 1765 - fn surround_cell_num(board_of_game: &Vec>, pos: (usize, usize)) -> i8 { [INFO] [stdout] 1765 + fn surround_cell_num(board_of_game: &[Vec], pos: (usize, usize)) -> i8 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:1773:14 [INFO] [stdout] | [INFO] [stdout] 1773 | for m in max(1, pos.0) - 1..min(row, pos.0 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1773 - for m in max(1, pos.0) - 1..min(row, pos.0 + 2) { [INFO] [stdout] 1773 + for in board_of_game.iter().take(min(row, pos.0 + 2)).skip(max(1, pos.0) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:1774:18 [INFO] [stdout] | [INFO] [stdout] 1774 | for n in max(1, pos.1) - 1..min(column, pos.1 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1774 - for n in max(1, pos.1) - 1..min(column, pos.1 + 2) { [INFO] [stdout] 1774 + for in board_of_game.iter().take(min(column, pos.1 + 2)).skip(max(1, pos.1) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:1790:33 [INFO] [stdout] | [INFO] [stdout] 1790 | pub fn cal_board_numbers(board: &mut 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] 1790 - pub fn cal_board_numbers(board: &mut Vec>) { [INFO] [stdout] 1790 + pub fn cal_board_numbers(board: &mut [Vec]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `board` [INFO] [stdout] --> src/utils.rs:1796:26 [INFO] [stdout] | [INFO] [stdout] 1796 | for j in max(1, x) - 1..min(height, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1796 - for j in max(1, x) - 1..min(height, x + 2) { [INFO] [stdout] 1796 + for in board.iter_mut().take(min(height, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `board` [INFO] [stdout] --> src/utils.rs:1797:30 [INFO] [stdout] | [INFO] [stdout] 1797 | for k in max(1, y) - 1..min(width, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1797 - for k in max(1, y) - 1..min(width, y + 2) { [INFO] [stdout] 1797 + for in board.iter_mut().take(min(width, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:53:6 [INFO] [stdout] | [INFO] [stdout] 53 | ) -> Result<(Vec<(usize, usize)>, Vec<(usize, usize)>), usize> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is used to index `a_mats` [INFO] [stdout] --> src/algorithms.rs:72:26 [INFO] [stdout] | [INFO] [stdout] 72 | for k in 0..matrix_column { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 72 - for k in 0..matrix_column { [INFO] [stdout] 72 + for (k, ) in a_mats.iter().enumerate().take(matrix_column) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:147:6 [INFO] [stdout] | [INFO] [stdout] 147 | ) -> Result<(Vec<(usize, usize)>, Vec<(usize, usize)>), usize> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/algorithms.rs:146:20 [INFO] [stdout] | [INFO] [stdout] 146 | board_of_game: &mut 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] 146 - board_of_game: &mut Vec>, [INFO] [stdout] 146 + board_of_game: &mut [Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `t` is only used to index `a_mats` [INFO] [stdout] --> src/algorithms.rs:181:34 [INFO] [stdout] | [INFO] [stdout] 181 | for t in 0..matrix_row { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 181 - for t in 0..matrix_row { [INFO] [stdout] 181 + for in a_mats.iter_mut().take(matrix_row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:199:20 [INFO] [stdout] | [INFO] [stdout] 199 | Some(_) => 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] 199 - Some(_) => return true, [INFO] [stdout] 199 + Some(_) => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:200:17 [INFO] [stdout] | [INFO] [stdout] 200 | None => 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] 200 - None => return false, [INFO] [stdout] 200 + None => false, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/algorithms.rs:202:5 [INFO] [stdout] | [INFO] [stdout] 202 | / match ans { [INFO] [stdout] 203 | | Some(_) => return Err(6), [INFO] [stdout] 204 | | None => {} [INFO] [stdout] 205 | | } [INFO] [stdout] | |_____^ help: try: `if let Some(_) = ans { return Err(6) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:220:6 [INFO] [stdout] | [INFO] [stdout] 220 | ) -> Result<(Vec<((usize, usize), f64)>, f64, [usize; 3], usize), usize> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:232:25 [INFO] [stdout] | [INFO] [stdout] 232 | refresh_matrixs(&board_of_game); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `board_of_game` [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 loop variable `i` is only used to index `table_minenum_s` [INFO] [stdout] --> src/algorithms.rs:279:14 [INFO] [stdout] | [INFO] [stdout] 279 | for i in 0..block_num { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 279 - for i in 0..block_num { [INFO] [stdout] 279 + for in table_minenum_s.iter().take(block_num) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `table_minenum_s` [INFO] [stdout] --> src/algorithms.rs:326:14 [INFO] [stdout] | [INFO] [stdout] 326 | for i in 0..block_num + 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 326 - for i in 0..block_num + 1 { [INFO] [stdout] 326 + for in table_minenum_s.iter().take(block_num + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:114:6 [INFO] [stdout] | [INFO] [stdout] 114 | ) -> (Vec>, Vec<(usize, usize)>, Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:113:17 [INFO] [stdout] | [INFO] [stdout] 113 | game_board: &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] 113 - game_board: &Vec>, [INFO] [stdout] 113 + game_board: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cell_id` is only used to index `comb_relp_s` [INFO] [stdout] --> src/algorithms.rs:367:28 [INFO] [stdout] | [INFO] [stdout] 367 | for cell_id in 0..cells_len { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 367 - for cell_id in 0..cells_len { [INFO] [stdout] 367 + for in comb_relp_s.iter().take(cells_len) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `game_board` [INFO] [stdout] --> src/utils.rs:127:26 [INFO] [stdout] | [INFO] [stdout] 127 | for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 127 - for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 127 + for in game_board.iter().take(min(row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `game_board` [INFO] [stdout] --> src/utils.rs:128:30 [INFO] [stdout] | [INFO] [stdout] 128 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 128 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 128 + for in game_board.iter().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `game_board` [INFO] [stdout] --> src/utils.rs:138:30 [INFO] [stdout] | [INFO] [stdout] 138 | for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 138 - for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 138 + for (m, ) in game_board.iter().enumerate().take(min(row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `game_board` [INFO] [stdout] --> src/utils.rs:139:34 [INFO] [stdout] | [INFO] [stdout] 139 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 139 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 139 + for (n, ) in game_board.iter().enumerate().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:459:30 [INFO] [stdout] | [INFO] [stdout] 459 | let pp = cal_probability(&board_of_game, minenum)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `board_of_game` [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 loop variable `ii` is only used to index `matrix_a` [INFO] [stdout] --> src/utils.rs:151:47 [INFO] [stdout] | [INFO] [stdout] 151 | ... for ii in 0..matrix_a_row_num { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 151 - for ii in 0..matrix_a_row_num { [INFO] [stdout] 151 + for in matrix_a.iter_mut().take(matrix_a_row_num) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/algorithms.rs:469:49 [INFO] [stdout] | [INFO] [stdout] 469 | } else if board_of_game[r][c] == 12 { [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 470 | | p[r][c] = 0.0; [INFO] [stdout] 471 | | } else if p[r][c] < -0.5 { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/algorithms.rs:471:38 [INFO] [stdout] | [INFO] [stdout] 471 | } else if p[r][c] < -0.5 { [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 472 | | p[r][c] = 0.0; [INFO] [stdout] 473 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:173:6 [INFO] [stdout] | [INFO] [stdout] 173 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 174 | | Vec>>, [INFO] [stdout] 175 | | Vec>, [INFO] [stdout] 176 | | Vec>, [INFO] [stdout] 177 | | usize, [INFO] [stdout] 178 | | usize, [INFO] [stdout] 179 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/algorithms.rs:499:20 [INFO] [stdout] | [INFO] [stdout] 499 | board_of_game: &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] 499 ~ board_of_game: &[Vec], [INFO] [stdout] 500 | minenum: usize, [INFO] [stdout] ... [INFO] [stdout] 506 | for (cell_id, &(x, y)) in cells.iter().enumerate() { [INFO] [stdout] 507 ~ let mut board_of_game_modified = board_of_game.to_owned(); [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/utils.rs:172:20 [INFO] [stdout] | [INFO] [stdout] 172 | board_of_game: &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] 172 - board_of_game: &Vec>, [INFO] [stdout] 172 + board_of_game: &[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/algorithms.rs:501:12 [INFO] [stdout] | [INFO] [stdout] 501 | cells: &Vec<(usize, usize)>, [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] 501 - cells: &Vec<(usize, usize)>, [INFO] [stdout] 501 + cells: &[(usize, usize)], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:195:34 [INFO] [stdout] | [INFO] [stdout] 195 | 'outer: for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 195 - 'outer: for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 195 + 'outer: for in board_of_game.iter().take(min(row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:196:30 [INFO] [stdout] | [INFO] [stdout] 196 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 196 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 196 + for in board_of_game.iter().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/algorithms.rs:516:21 [INFO] [stdout] | [INFO] [stdout] 516 | let p; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `p` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 516 ~ [INFO] [stdout] 517 ~ let p = match cal_probability_onboard(&board_of_game_modified, minenum as f64) { [INFO] [stdout] 518 ~ Ok((ppp, _)) => ppp, [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/algorithms.rs:538:17 [INFO] [stdout] | [INFO] [stdout] 538 | game_board: &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] 538 ~ game_board: &[Vec], [INFO] [stdout] 539 | minenum: f64, [INFO] [stdout] ... [INFO] [stdout] 542 | let mut poss = 1.0; [INFO] [stdout] 543 ~ let mut game_board_modified = game_board.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:206:26 [INFO] [stdout] | [INFO] [stdout] 206 | for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 206 - for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 206 + for in board_of_game.iter().take(min(row, i + 2)).skip(max(1, i) - 1) { [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/algorithms.rs:540:12 [INFO] [stdout] | [INFO] [stdout] 540 | cells: &Vec<(usize, usize)>, [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] 540 - cells: &Vec<(usize, usize)>, [INFO] [stdout] 540 + cells: &[(usize, usize)], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:207:30 [INFO] [stdout] | [INFO] [stdout] 207 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 207 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 207 + for in board_of_game.iter().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:583:6 [INFO] [stdout] | [INFO] [stdout] 583 | ) -> (Vec<(usize, usize)>, Vec<(usize, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/algorithms.rs:580:13 [INFO] [stdout] | [INFO] [stdout] 580 | a_mats: &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] 580 - a_mats: &Vec>>, [INFO] [stdout] 580 + a_mats: &[Vec>], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:230:18 [INFO] [stdout] | [INFO] [stdout] 230 | for m in max(1, x_0) - 1..min(row, x_0 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 230 - for m in max(1, x_0) - 1..min(row, x_0 + 2) { [INFO] [stdout] 230 + for (m, ) in board_of_game.iter().enumerate().take(min(row, x_0 + 2)).skip(max(1, x_0) - 1) { [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/algorithms.rs:581:9 [INFO] [stdout] | [INFO] [stdout] 581 | xs: &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] 581 - xs: &Vec>, [INFO] [stdout] 581 + xs: &[Vec<(usize, usize)>], [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/algorithms.rs:582:9 [INFO] [stdout] | [INFO] [stdout] 582 | bs: &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] 582 - bs: &Vec>, [INFO] [stdout] 582 + bs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:231:22 [INFO] [stdout] | [INFO] [stdout] 231 | for n in max(1, y_0) - 1..min(column, y_0 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 231 - for n in max(1, y_0) - 1..min(column, y_0 + 2) { [INFO] [stdout] 231 + for (n, ) in board_of_game.iter().enumerate().take(min(column, y_0 + 2)).skip(max(1, y_0) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:255:26 [INFO] [stdout] | [INFO] [stdout] 255 | for m in max(1, max(x_t, x_e)) - 1..min(row, min(x_t + 2, x_e + 2)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 255 - for m in max(1, max(x_t, x_e)) - 1..min(row, min(x_t + 2, x_e + 2)) { [INFO] [stdout] 255 + for in board_of_game.iter().take(min(row, min(x_t + 2, x_e + 2))).skip(max(1, max(x_t, x_e)) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `ii` is only used to index `table_cell_minenum_i` [INFO] [stdout] --> src/algorithms.rs:614:23 [INFO] [stdout] | [INFO] [stdout] 614 | for ii in 0..table_cell_minenum_i.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 614 - for ii in 0..table_cell_minenum_i.len() { [INFO] [stdout] 614 + for in &table_cell_minenum_i { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:643:5 [INFO] [stdout] | [INFO] [stdout] 643 | 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] 643 - return true; [INFO] [stdout] 643 + true [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/algorithms.rs:633:27 [INFO] [stdout] | [INFO] [stdout] 633 | fn is_victory(game_board: &Vec>, board: &Vec>) -> 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] 633 - fn is_victory(game_board: &Vec>, board: &Vec>) -> bool { [INFO] [stdout] 633 + fn is_victory(game_board: &[Vec], board: &Vec>) -> bool { [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/algorithms.rs:633:50 [INFO] [stdout] | [INFO] [stdout] 633 | fn is_victory(game_board: &Vec>, board: &Vec>) -> 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] 633 - fn is_victory(game_board: &Vec>, board: &Vec>) -> bool { [INFO] [stdout] 633 + fn is_victory(game_board: &Vec>, board: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:256:30 [INFO] [stdout] | [INFO] [stdout] 256 | for n in max(1, max(y_t, y_e)) - 1..min(column, min(y_t + 2, y_e + 2)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 256 - for n in max(1, max(y_t, y_e)) - 1..min(column, min(y_t + 2, y_e + 2)) { [INFO] [stdout] 256 + for in board_of_game.iter().take(min(column, min(y_t + 2, y_e + 2))).skip(max(1, max(y_t, y_e)) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:265:30 [INFO] [stdout] | [INFO] [stdout] 265 | for m in max(1, x_t) - 1..min(row, x_t + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 265 - for m in max(1, x_t) - 1..min(row, x_t + 2) { [INFO] [stdout] 265 + for (m, ) in board_of_game.iter().enumerate().take(min(row, x_t + 2)).skip(max(1, x_t) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:266:34 [INFO] [stdout] | [INFO] [stdout] 266 | for n in max(1, y_t) - 1..min(column, y_t + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 266 - for n in max(1, y_t) - 1..min(column, y_t + 2) { [INFO] [stdout] 266 + for (n, ) in board_of_game.iter().enumerate().take(min(column, y_t + 2)).skip(max(1, y_t) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:267:29 [INFO] [stdout] | [INFO] [stdout] 267 | / ... if board_of_game[m][n] == 10 { [INFO] [stdout] 268 | | ... if !matrix_xs[p].contains(&(m, n)) { [INFO] [stdout] 269 | | ... matrix_xs[p].push((m, n)); [INFO] [stdout] 270 | | ... } [INFO] [stdout] 271 | | ... } [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] 267 ~ if board_of_game[m][n] == 10 [INFO] [stdout] 268 ~ && !matrix_xs[p].contains(&(m, n)) { [INFO] [stdout] 269 | matrix_xs[p].push((m, n)); [INFO] [stdout] 270 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:305:6 [INFO] [stdout] | [INFO] [stdout] 305 | ) -> ( [INFO] [stdout] | ______^ [INFO] [stdout] 306 | | Vec>>>, [INFO] [stdout] 307 | | Vec>>, [INFO] [stdout] 308 | | Vec>>, [INFO] [stdout] 309 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to pop elements from a `Vec` in a loop [INFO] [stdout] --> src/utils.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 334 | let (t_i, t_j) = buffer.pop().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_while_let_some [INFO] [stdout] = note: `#[warn(clippy::manual_while_let_some)]` on by default [INFO] [stdout] help: consider using a `while..let` loop [INFO] [stdout] | [INFO] [stdout] 333 ~ while let Some((t_i, t_j)) = buffer.pop() { [INFO] [stdout] 334 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `board_mark` [INFO] [stdout] --> src/utils.rs:336:30 [INFO] [stdout] | [INFO] [stdout] 336 | for m in max(1, t_i) - 1..min(row, t_i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 336 - for m in max(1, t_i) - 1..min(row, t_i + 2) { [INFO] [stdout] 336 + for (m, ) in board_mark.iter_mut().enumerate().take(min(row, t_i + 2)).skip(max(1, t_i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `board_mark` [INFO] [stdout] --> src/utils.rs:337:34 [INFO] [stdout] | [INFO] [stdout] 337 | for n in max(1, t_j) - 1..min(column, t_j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 337 - for n in max(1, t_j) - 1..min(column, t_j + 2) { [INFO] [stdout] 337 + for (n, ) in board_mark.iter_mut().enumerate().take(min(column, t_j + 2)).skip(max(1, t_j) - 1) { [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/algorithms.rs:663:42 [INFO] [stdout] | [INFO] [stdout] 663 | fn is_victory(&mut self, game_board: &Vec>, board: &Vec>) -> 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] 663 - fn is_victory(&mut self, game_board: &Vec>, board: &Vec>) -> bool { [INFO] [stdout] 663 + fn is_victory(&mut self, game_board: &[Vec], board: &Vec>) -> bool { [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/algorithms.rs:663:65 [INFO] [stdout] | [INFO] [stdout] 663 | fn is_victory(&mut self, game_board: &Vec>, board: &Vec>) -> 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] 663 - fn is_victory(&mut self, game_board: &Vec>, board: &Vec>) -> bool { [INFO] [stdout] 663 + fn is_victory(&mut self, game_board: &Vec>, board: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/algorithms.rs:665:13 [INFO] [stdout] | [INFO] [stdout] 665 | / if game_board[self.pointer_x][j] < 10 { [INFO] [stdout] 666 | | if game_board[self.pointer_x][j] != board[self.pointer_x][j] { [INFO] [stdout] 667 | | return false; // 安全性相关(发生作弊) [INFO] [stdout] 668 | | } [INFO] [stdout] 669 | | } [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] 665 ~ if game_board[self.pointer_x][j] < 10 [INFO] [stdout] 666 ~ && game_board[self.pointer_x][j] != board[self.pointer_x][j] { [INFO] [stdout] 667 | return false; // 安全性相关(发生作弊) [INFO] [stdout] 668 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to pop elements from a `Vec` in a loop [INFO] [stdout] --> src/utils.rs:367:13 [INFO] [stdout] | [INFO] [stdout] 367 | let seed = block.pop().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_while_let_some [INFO] [stdout] help: consider using a `while..let` loop [INFO] [stdout] | [INFO] [stdout] 366 ~ while let Some(seed) = block.pop() { [INFO] [stdout] 367 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/algorithms.rs:677:17 [INFO] [stdout] | [INFO] [stdout] 677 | / if game_board[i][j] < 10 { [INFO] [stdout] 678 | | if game_board[i][j] != board[i][j] { [INFO] [stdout] 679 | | return false; // 安全性相关(发生作弊) [INFO] [stdout] 680 | | } [INFO] [stdout] 681 | | } [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] 677 ~ if game_board[i][j] < 10 [INFO] [stdout] 678 ~ && game_board[i][j] != board[i][j] { [INFO] [stdout] 679 | return false; // 安全性相关(发生作弊) [INFO] [stdout] 680 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:701:29 [INFO] [stdout] | [INFO] [stdout] 701 | if unsolvable_structure(&board) { [INFO] [stdout] | ^^^^^^ help: change this to: `board` [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/algorithms.rs:712:38 [INFO] [stdout] | [INFO] [stdout] 712 | if judge.is_victory(&game_board, &board) { [INFO] [stdout] | ^^^^^^ help: change this to: `board` [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 seem to be trying to pop elements from a `Vec` in a loop [INFO] [stdout] --> src/utils.rs:387:13 [INFO] [stdout] | [INFO] [stdout] 387 | let t = buffer.pop().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_while_let_some [INFO] [stdout] help: consider using a `while..let` loop [INFO] [stdout] | [INFO] [stdout] 386 ~ while let Some(t) = buffer.pop() { [INFO] [stdout] 387 ~ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:740:42 [INFO] [stdout] | [INFO] [stdout] 740 | if judge.is_victory(&game_board, &board) { [INFO] [stdout] | ^^^^^^ help: change this to: `board` [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 loop variable `idj` is used to index `adjacency_matrix` [INFO] [stdout] --> src/utils.rs:407:24 [INFO] [stdout] | [INFO] [stdout] 407 | for idj in t..a_mats.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 407 - for idj in t..a_mats.len() { [INFO] [stdout] 407 + for (idj, ) in adjacency_matrix.iter().enumerate().take(a_mats.len()).skip(t) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `reserve` immediately after creation [INFO] [stdout] --> src/utils.rs:460:5 [INFO] [stdout] | [INFO] [stdout] 460 | / let mut board_1d: Vec = vec![]; [INFO] [stdout] 461 | | board_1d.reserve(area); [INFO] [stdout] | |___________________________^ help: consider using `Vec::with_capacity(/* Space hint */)`: `let mut board_1d: Vec = Vec::with_capacity(area);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#reserve_after_initialization [INFO] [stdout] = note: `#[warn(clippy::reserve_after_initialization)]` 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/algorithms.rs:763:32 [INFO] [stdout] | [INFO] [stdout] 763 | if is_victory(&game_board, &board) { [INFO] [stdout] | ^^^^^^ help: change this to: `board` [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/utils.rs:477:15 [INFO] [stdout] | [INFO] [stdout] 477 | board_1d: &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] 477 - board_1d: &Vec, [INFO] [stdout] 477 + board_1d: &[i32], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `board` [INFO] [stdout] --> src/utils.rs:492:26 [INFO] [stdout] | [INFO] [stdout] 492 | for j in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 492 - for j in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] 492 + for in board.iter_mut().take(min(row, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `board` [INFO] [stdout] --> src/utils.rs:493:30 [INFO] [stdout] | [INFO] [stdout] 493 | for k in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 493 - for k in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] 493 + for in board.iter_mut().take(min(column, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `reserve` immediately after creation [INFO] [stdout] --> src/utils.rs:512:5 [INFO] [stdout] | [INFO] [stdout] 512 | / let mut board1_dim_2: Vec = vec![]; [INFO] [stdout] 513 | | board1_dim_2.reserve(row * column); [INFO] [stdout] | |_______________________________________^ help: consider using `Vec::with_capacity(/* Space hint */)`: `let mut board1_dim_2: Vec = Vec::with_capacity(row * column);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#reserve_after_initialization [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board1_dim` [INFO] [stdout] --> src/utils.rs:515:14 [INFO] [stdout] | [INFO] [stdout] 515 | for i in 0..pointer { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 515 - for i in 0..pointer { [INFO] [stdout] 515 + for in board1_dim.iter().take(pointer) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board1_dim` [INFO] [stdout] --> src/utils.rs:519:14 [INFO] [stdout] | [INFO] [stdout] 519 | for i in pointer..(row * column - 1) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 519 - for i in pointer..(row * column - 1) { [INFO] [stdout] 519 + for in board1_dim.iter().take((row * column - 1)).skip(pointer) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `game_board` [INFO] [stdout] --> src/algorithms.rs:879:14 [INFO] [stdout] | [INFO] [stdout] 879 | for i in 0..row { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 879 - for i in 0..row { [INFO] [stdout] 879 + for (i, ) in game_board.iter_mut().enumerate().take(row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `board1_dim_2` [INFO] [stdout] --> src/utils.rs:523:14 [INFO] [stdout] | [INFO] [stdout] 523 | for i in 0..(row * column) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 523 - for i in 0..(row * column) { [INFO] [stdout] 523 + for (i, ) in board1_dim_2.iter().enumerate().take((row * column)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `game_board` [INFO] [stdout] --> src/algorithms.rs:880:18 [INFO] [stdout] | [INFO] [stdout] 880 | for j in 0..column { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 880 - for j in 0..column { [INFO] [stdout] 880 + for (j, ) in game_board.iter_mut().enumerate().take(column) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `board` [INFO] [stdout] --> src/utils.rs:528:22 [INFO] [stdout] | [INFO] [stdout] 528 | for j in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 528 - for j in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] 528 + for in board.iter_mut().take(min(row, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `board` [INFO] [stdout] --> src/utils.rs:529:26 [INFO] [stdout] | [INFO] [stdout] 529 | for k in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 529 - for k in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] 529 + for in board.iter_mut().take(min(column, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/algorithms.rs:939:12 [INFO] [stdout] | [INFO] [stdout] 939 | if x0 == 0 && y0 == 0 [INFO] [stdout] | ____________^ [INFO] [stdout] 940 | | || x0 == 0 && y0 == column - 1 [INFO] [stdout] 941 | | || x0 == row - 1 && y0 == 0 [INFO] [stdout] 942 | | || x0 == row - 1 && y0 == column - 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] help: try [INFO] [stdout] | [INFO] [stdout] 939 - if x0 == 0 && y0 == 0 [INFO] [stdout] 940 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 941 - || x0 == row - 1 && y0 == 0 [INFO] [stdout] 942 - || x0 == row - 1 && y0 == column - 1 [INFO] [stdout] 939 + if !(y0 != 0 && y0 != column - 1 || x0 != 0 && x0 != row - 1) [INFO] [stdout] | [INFO] [stdout] 939 - if x0 == 0 && y0 == 0 [INFO] [stdout] 940 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 941 - || x0 == row - 1 && y0 == 0 [INFO] [stdout] 942 - || x0 == row - 1 && y0 == column - 1 [INFO] [stdout] 939 + if (x0 == row - 1 || x0 == 0) && (y0 == column - 1 || y0 == 0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils.rs:552:12 [INFO] [stdout] | [INFO] [stdout] 552 | if x0 == 0 && y0 == 0 [INFO] [stdout] | ____________^ [INFO] [stdout] 553 | | || x0 == 0 && y0 == column - 1 [INFO] [stdout] 554 | | || x0 == row - 1 && y0 == 0 [INFO] [stdout] 555 | | || x0 == row - 1 && y0 == column - 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] 552 - if x0 == 0 && y0 == 0 [INFO] [stdout] 553 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 554 - || x0 == row - 1 && y0 == 0 [INFO] [stdout] 555 - || x0 == row - 1 && y0 == column - 1 [INFO] [stdout] 552 + if !(y0 != 0 && y0 != column - 1 || x0 != 0 && x0 != row - 1) [INFO] [stdout] | [INFO] [stdout] 552 - if x0 == 0 && y0 == 0 [INFO] [stdout] 553 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 554 - || x0 == row - 1 && y0 == 0 [INFO] [stdout] 555 - || x0 == row - 1 && y0 == column - 1 [INFO] [stdout] 552 + if (x0 == row - 1 || x0 == 0) && (y0 == column - 1 || y0 == 0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/algorithms.rs:939:12 [INFO] [stdout] | [INFO] [stdout] 939 | if x0 == 0 && y0 == 0 [INFO] [stdout] | ____________^ [INFO] [stdout] 940 | | || x0 == 0 && y0 == column - 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] help: try [INFO] [stdout] | [INFO] [stdout] 939 - if x0 == 0 && y0 == 0 [INFO] [stdout] 940 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 939 + if !(x0 != 0 || y0 != 0 && y0 != column - 1) [INFO] [stdout] | [INFO] [stdout] 939 - if x0 == 0 && y0 == 0 [INFO] [stdout] 940 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 939 + if (y0 == column - 1 || y0 == 0) && x0 == 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils.rs:552:12 [INFO] [stdout] | [INFO] [stdout] 552 | if x0 == 0 && y0 == 0 [INFO] [stdout] | ____________^ [INFO] [stdout] 553 | | || x0 == 0 && y0 == column - 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] help: try [INFO] [stdout] | [INFO] [stdout] 552 - if x0 == 0 && y0 == 0 [INFO] [stdout] 553 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 552 + if !(x0 != 0 || y0 != 0 && y0 != column - 1) [INFO] [stdout] | [INFO] [stdout] 552 - if x0 == 0 && y0 == 0 [INFO] [stdout] 553 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 552 + if (y0 == column - 1 || y0 == 0) && x0 == 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `b` [INFO] [stdout] --> src/algorithms.rs:991:14 [INFO] [stdout] | [INFO] [stdout] 991 | for i in 0..row { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 991 - for i in 0..row { [INFO] [stdout] 991 + for in b.iter_mut().take(row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `b` [INFO] [stdout] --> src/algorithms.rs:992:18 [INFO] [stdout] | [INFO] [stdout] 992 | for j in 0..column { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 992 - for j in 0..column { [INFO] [stdout] 992 + for in b.iter_mut().take(column) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:609:20 [INFO] [stdout] | [INFO] [stdout] 609 | board_of_game: &mut 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] 609 - board_of_game: &mut Vec>, [INFO] [stdout] 609 + board_of_game: &mut [Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:625:22 [INFO] [stdout] | [INFO] [stdout] 625 | for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 625 - for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 625 + for (m, ) in board_of_game.iter().enumerate().take(min(row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `b` [INFO] [stdout] --> src/algorithms.rs:1002:26 [INFO] [stdout] | [INFO] [stdout] 1002 | for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1002 - for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 1002 + for in b.iter_mut().take(min(row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:626:26 [INFO] [stdout] | [INFO] [stdout] 626 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 626 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 626 + for (n, ) in board_of_game.iter().enumerate().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `b` [INFO] [stdout] --> src/algorithms.rs:1003:30 [INFO] [stdout] | [INFO] [stdout] 1003 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1003 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 1003 + for in b.iter_mut().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1247:5 [INFO] [stdout] | [INFO] [stdout] 1247 | return (vec![], 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] 1247 - return (vec![], false); [INFO] [stdout] 1247 + (vec![], false) [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/algorithms.rs:1043:12 [INFO] [stdout] | [INFO] [stdout] 1043 | board: &Vec>, // 当前的board,数字没有计算,只有0,-1,-10 [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] 1043 ~ board: &[Vec], // 当前的board,数字没有计算,只有0,-1,-10 [INFO] [stdout] 1044 | board_of_game: &Vec>, // 当前的board_of_game,只有10,1(没有计算的数字),11,0(起手位置) [INFO] [stdout] ... [INFO] [stdout] 1057 | // print_matrix(board_of_game); [INFO] [stdout] 1058 ~ let mut board_clone = board.to_owned(); // 克隆一个board的备份 [INFO] [stdout] 1059 | let mut game_board_clone = board_of_game.clone(); // 克隆一个board_of_game的备份 [INFO] [stdout] ... [INFO] [stdout] 1238 | } else { [INFO] [stdout] 1239 ~ board_clone = board.to_owned(); [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/algorithms.rs:1044:20 [INFO] [stdout] | [INFO] [stdout] 1044 | board_of_game: &Vec>, // 当前的board_of_game,只有10,1(没有计算的数字),11,0(起手位置) [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] 1044 ~ board_of_game: &[Vec], // 当前的board_of_game,只有10,1(没有计算的数字),11,0(起手位置) [INFO] [stdout] 1045 | // plan_click: &Vec<(usize, usize)>, // 当前计划点开的格子,递归部分要保证点开后,局面是有解开的可能的 [INFO] [stdout] ... [INFO] [stdout] 1058 | let mut board_clone = board.clone(); // 克隆一个board的备份 [INFO] [stdout] 1059 ~ let mut game_board_clone = board_of_game.to_owned(); // 克隆一个board_of_game的备份 [INFO] [stdout] 1060 | [INFO] [stdout] ... [INFO] [stdout] 1239 | board_clone = board.clone(); [INFO] [stdout] 1240 ~ game_board_clone = board_of_game.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:689:6 [INFO] [stdout] | [INFO] [stdout] 689 | ) -> (Vec>, Vec<(usize, usize)>, Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:687:15 [INFO] [stdout] | [INFO] [stdout] 687 | matrix_a: &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] 687 ~ matrix_a: &[Vec], [INFO] [stdout] 688 | matrixx: &Vec<(usize, usize)>, [INFO] [stdout] ... [INFO] [stdout] 692 | // 并在内部更改矩阵,合并重复的列 [INFO] [stdout] 693 ~ let mut matrix_a_squeeze = matrix_a.to_owned(); [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/utils.rs:688:14 [INFO] [stdout] | [INFO] [stdout] 688 | matrixx: &Vec<(usize, usize)>, [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] 688 ~ matrixx: &[(usize, usize)], [INFO] [stdout] 689 | ) -> (Vec>, Vec<(usize, usize)>, Vec>) { [INFO] [stdout] ... [INFO] [stdout] 693 | let mut matrix_a_squeeze = matrix_a.clone(); [INFO] [stdout] 694 ~ let mut matrixx_squeeze = matrixx.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils.rs:707:36 [INFO] [stdout] | [INFO] [stdout] 707 | del_cells.sort_by(|a, b| b.cmp(&a)); [INFO] [stdout] | ^^ help: change this to: `a` [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: the loop variable `r` is only used to index `matrix_a_squeeze` [INFO] [stdout] --> src/utils.rs:710:18 [INFO] [stdout] | [INFO] [stdout] 710 | for r in 0..matrix_a_squeeze.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 710 - for r in 0..matrix_a_squeeze.len() { [INFO] [stdout] 710 + for in &mut matrix_a_squeeze { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `matrix_a_squeeze` [INFO] [stdout] --> src/utils.rs:719:18 [INFO] [stdout] | [INFO] [stdout] 719 | for r in 0..matrix_a_squeeze.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 719 - for r in 0..matrix_a_squeeze.len() { [INFO] [stdout] 719 + for in &mut matrix_a_squeeze { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/algorithms.rs:1151:23 [INFO] [stdout] | [INFO] [stdout] 1151 | let minenum_min = if xs_cell_num < remain_not_minenum { [INFO] [stdout] | _______________________^ [INFO] [stdout] 1152 | | 0 [INFO] [stdout] 1153 | | } else { [INFO] [stdout] 1154 | | xs_cell_num - remain_not_minenum [INFO] [stdout] 1155 | | }; [INFO] [stdout] | |_____^ help: replace it with: `xs_cell_num.saturating_sub(remain_not_minenum)` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:727:35 [INFO] [stdout] | [INFO] [stdout] 727 | pub fn cal_all_solution(matrix_a: &Vec>, matrixb: &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] 727 - pub fn cal_all_solution(matrix_a: &Vec>, matrixb: &Vec) -> Vec> { [INFO] [stdout] 727 + pub fn cal_all_solution(matrix_a: &[Vec], matrixb: &Vec) -> 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/utils.rs:727:60 [INFO] [stdout] | [INFO] [stdout] 727 | pub fn cal_all_solution(matrix_a: &Vec>, matrixb: &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] 727 - pub fn cal_all_solution(matrix_a: &Vec>, matrixb: &Vec) -> Vec> { [INFO] [stdout] 727 + pub fn cal_all_solution(matrix_a: &Vec>, matrixb: &[i32]) -> Vec> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/algorithms.rs:1189:29 [INFO] [stdout] | [INFO] [stdout] 1189 | / ... if a_s[bb][ss][aa] == 1 { [INFO] [stdout] 1190 | | ... if board_clone[x_s[bb][aa].0][x_s[bb][aa].1] == -1 [INFO] [stdout] 1191 | | ... && game_board_clone[x_s[bb][aa].0][x_s[bb][aa].1] != 11 [INFO] [stdout] ... | [INFO] [stdout] 1195 | | ... } [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] 1189 ~ if a_s[bb][ss][aa] == 1 [INFO] [stdout] 1190 ~ && board_clone[x_s[bb][aa].0][x_s[bb][aa].1] == -1 [INFO] [stdout] 1191 | && game_board_clone[x_s[bb][aa].0][x_s[bb][aa].1] != 11 [INFO] [stdout] 1192 | { [INFO] [stdout] 1193 | b_s[bb][ss] += 1; [INFO] [stdout] 1194 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/algorithms.rs:1211:16 [INFO] [stdout] | [INFO] [stdout] 1211 | if not_mine.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!not_mine.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `enum_comb_table` [INFO] [stdout] --> src/utils.rs:768:34 [INFO] [stdout] | [INFO] [stdout] 768 | for n in 0..enum_comb_table_len { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 768 - for n in 0..enum_comb_table_len { [INFO] [stdout] 768 + for in enum_comb_table.iter_mut().take(enum_comb_table_len) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `rr` is used to index `matrix_a` [INFO] [stdout] --> src/utils.rs:785:27 [INFO] [stdout] | [INFO] [stdout] 785 | for rr in 0..row { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 785 - for rr in 0..row { [INFO] [stdout] 785 + for (rr, ) in matrix_a.iter().enumerate().take(row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/algorithms.rs:1049:5 [INFO] [stdout] | [INFO] [stdout] 1049 | depth: usize, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/algorithms.rs:1125:13 [INFO] [stdout] | [INFO] [stdout] 1125 | depth + 1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1232 | 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] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/algorithms.rs:1252:12 [INFO] [stdout] | [INFO] [stdout] 1252 | board: &mut 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] 1252 - board: &mut Vec>, [INFO] [stdout] 1252 + board: &mut [Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `id` is used as a loop counter [INFO] [stdout] --> src/algorithms.rs:1279:5 [INFO] [stdout] | [INFO] [stdout] 1279 | for &(x, y) in area_current_adjust { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (id, &(x, y)) in area_current_adjust.iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:959:40 [INFO] [stdout] | [INFO] [stdout] 959 | fn cal_cell_and_equation_map(matrix_a: &Vec>) -> (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] 959 - fn cal_cell_and_equation_map(matrix_a: &Vec>) -> (Vec>, Vec>) { [INFO] [stdout] 959 + fn cal_cell_and_equation_map(matrix_a: &[Vec]) -> (Vec>, Vec>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/utils.rs:978:1 [INFO] [stdout] | [INFO] [stdout] 978 | / fn cal_table_minenum_recursion_step( [INFO] [stdout] 979 | | idx: usize, [INFO] [stdout] 980 | | current_amount: usize, [INFO] [stdout] 981 | | table_minenum: &mut [Vec; 2], [INFO] [stdout] ... | [INFO] [stdout] 991 | | mine_vec: &mut Vec, [INFO] [stdout] 992 | | ) -> Result { [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board1_dim` [INFO] [stdout] --> src/algorithms.rs:1313:18 [INFO] [stdout] | [INFO] [stdout] 1313 | for i in 380..479 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1313 - for i in 380..479 { [INFO] [stdout] 1313 + for in board1_dim.iter_mut().skip(380) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/algorithms.rs:1321:9 [INFO] [stdout] | [INFO] [stdout] 1321 | / for i in 0..pointer { [INFO] [stdout] 1322 | | board1_dim_2[i] = board1_dim[i]; [INFO] [stdout] 1323 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `board1_dim_2[..pointer].copy_from_slice(&board1_dim[..pointer]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] = note: `#[warn(clippy::manual_memcpy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/algorithms.rs:1325:9 [INFO] [stdout] | [INFO] [stdout] 1325 | / for i in pointer..479 { [INFO] [stdout] 1326 | | board1_dim_2[i + 1] = board1_dim[i]; [INFO] [stdout] 1327 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `board1_dim_2[(pointer + 1)..(479 + 1)].copy_from_slice(&board1_dim[pointer..479]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `board1_dim_2` [INFO] [stdout] --> src/algorithms.rs:1329:18 [INFO] [stdout] | [INFO] [stdout] 1329 | for i in 0..480 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 1329 - for i in 0..480 { [INFO] [stdout] 1329 + for (i, ) in board1_dim_2.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils.rs:1048:13 [INFO] [stdout] | [INFO] [stdout] 1048 | &matrix_a_squeeze, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `matrix_a_squeeze` [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/utils.rs:1049:13 [INFO] [stdout] | [INFO] [stdout] 1049 | &matrix_b, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `matrix_b` [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/utils.rs:1051:13 [INFO] [stdout] | [INFO] [stdout] 1051 | &combination_relationship, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `combination_relationship` [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/utils.rs:1052:13 [INFO] [stdout] | [INFO] [stdout] 1052 | &cell_to_equation_map, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `cell_to_equation_map` [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/utils.rs:1053:13 [INFO] [stdout] | [INFO] [stdout] 1053 | &equation_to_cell_map, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `equation_to_cell_map` [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 loop variable `j` is only used to index `board` [INFO] [stdout] --> src/algorithms.rs:1334:26 [INFO] [stdout] | [INFO] [stdout] 1334 | for j in max(1, x) - 1..min(16, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1334 - for j in max(1, x) - 1..min(16, x + 2) { [INFO] [stdout] 1334 + for in board.iter_mut().take(min(16, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `board` [INFO] [stdout] --> src/algorithms.rs:1335:30 [INFO] [stdout] | [INFO] [stdout] 1335 | for k in max(1, y) - 1..min(30, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1335 - for k in max(1, y) - 1..min(30, y + 2) { [INFO] [stdout] 1335 + for in board.iter_mut().take(min(30, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/utils.rs:986:5 [INFO] [stdout] | [INFO] [stdout] 986 | matrix_b: &Vec, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix_b` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/utils.rs:1049:14 [INFO] [stdout] | [INFO] [stdout] 1049 | &matrix_b, [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:1351:12 [INFO] [stdout] | [INFO] [stdout] 1351 | model: &tract_onnx::prelude::SimplePlan< [INFO] [stdout] | ____________^ [INFO] [stdout] 1352 | | tract_onnx::prelude::TypedFact, [INFO] [stdout] 1353 | | std::boxed::Box, [INFO] [stdout] 1354 | | tract_onnx::prelude::Graph< [INFO] [stdout] ... | [INFO] [stdout] 1357 | | >, [INFO] [stdout] 1358 | | >, [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:1070:6 [INFO] [stdout] | [INFO] [stdout] 1070 | ) -> Result<([Vec; 2], Vec>), usize> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:1130:9 [INFO] [stdout] | [INFO] [stdout] 1130 | return Err(1); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1130 - return Err(1); [INFO] [stdout] 1130 + Err(1) [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/utils.rs:1067:22 [INFO] [stdout] | [INFO] [stdout] 1067 | matrixx_squeeze: &Vec<(usize, usize)>, [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] 1067 - matrixx_squeeze: &Vec<(usize, usize)>, [INFO] [stdout] 1067 + matrixx_squeeze: &[(usize, usize)], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils.rs:1089:82 [INFO] [stdout] | [INFO] [stdout] 1089 | let (cell_to_equation_map, equation_to_cell_map) = cal_cell_and_equation_map(&matrix_a_squeeze); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `matrix_a_squeeze` [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/utils.rs:1101:9 [INFO] [stdout] | [INFO] [stdout] 1101 | &matrix_a_squeeze, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `matrix_a_squeeze` [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/utils.rs:1102:9 [INFO] [stdout] | [INFO] [stdout] 1102 | &matrix_b, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `matrix_b` [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/utils.rs:1104:9 [INFO] [stdout] | [INFO] [stdout] 1104 | &combination_relationship, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `combination_relationship` [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 loop variable `i` is used to index `board` [INFO] [stdout] --> src/algorithms.rs:1442:14 [INFO] [stdout] | [INFO] [stdout] 1442 | for i in 0..image_board.r { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 1442 - for i in 0..image_board.r { [INFO] [stdout] 1442 + for (i, ) in board.iter_mut().enumerate().take(image_board.r) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `board` [INFO] [stdout] --> src/algorithms.rs:1443:18 [INFO] [stdout] | [INFO] [stdout] 1443 | for j in 0..image_board.c { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 1443 - for j in 0..image_board.c { [INFO] [stdout] 1443 + for (j, ) in board.iter_mut().enumerate().take(image_board.c) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:1504:62 [INFO] [stdout] | [INFO] [stdout] 1504 | let (mut a_mats, mut xs, mut bs, _, _) = refresh_matrixs(&game_board); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `game_board` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:1523:6 [INFO] [stdout] | [INFO] [stdout] 1523 | ) -> (Vec<(usize, usize)>, Vec<(usize, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/algorithms.rs:1543:5 [INFO] [stdout] | [INFO] [stdout] 1543 | /// 2 -> 必要的猜雷。(由于全局或局部不可判而猜雷) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 1543 | /// 2 -> 必要的猜雷。(由于全局或局部不可判而猜雷) [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/algorithms.rs:1544:5 [INFO] [stdout] | [INFO] [stdout] 1544 | /// 3 -> 不必要的猜雷。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 1544 | /// 3 -> 不必要的猜雷。 [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/algorithms.rs:1545:5 [INFO] [stdout] | [INFO] [stdout] 1545 | /// 4 -> 踩到必然的雷。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 1545 | /// 4 -> 踩到必然的雷。 [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/algorithms.rs:1546:5 [INFO] [stdout] | [INFO] [stdout] 1546 | /// 5 -> 没有结果。因为此处已经被点开了。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 1546 | /// 5 -> 没有结果。因为此处已经被点开了。 [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1574:19 [INFO] [stdout] | [INFO] [stdout] 1574 | 12 => return 1, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1574 - 12 => return 1, [INFO] [stdout] 1574 + 12 => 1, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1575:19 [INFO] [stdout] | [INFO] [stdout] 1575 | 11 => return 4, [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] 1575 - 11 => return 4, [INFO] [stdout] 1575 + 11 => 4, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1583:27 [INFO] [stdout] | [INFO] [stdout] 1583 | 12 => return 1, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1583 - 12 => return 1, [INFO] [stdout] 1583 + 12 => 1, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1584:27 [INFO] [stdout] | [INFO] [stdout] 1584 | 11 => return 4, [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] 1584 - 11 => return 4, [INFO] [stdout] 1584 + 11 => 4, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1592:29 [INFO] [stdout] | [INFO] [stdout] 1592 | ... return 1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1592 - return 1; [INFO] [stdout] 1592 + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1594:29 [INFO] [stdout] | [INFO] [stdout] 1594 | ... return 4; [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] 1594 - return 4; [INFO] [stdout] 1594 + 4 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1596:29 [INFO] [stdout] | [INFO] [stdout] 1596 | ... return 2; [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] 1596 - return 2; [INFO] [stdout] 1596 + 2 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1598:29 [INFO] [stdout] | [INFO] [stdout] 1598 | ... return 3; [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] 1598 - return 3; [INFO] [stdout] 1598 + 3 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1605:9 [INFO] [stdout] | [INFO] [stdout] 1605 | return 2; // 无论何时,包心雷,是合理的猜雷。 [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] 1605 - return 2; // 无论何时,包心雷,是合理的猜雷。 [INFO] [stdout] 1605 + 2// 无论何时,包心雷,是合理的猜雷。 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:1559:64 [INFO] [stdout] | [INFO] [stdout] 1559 | let (mut a_matses, mut xses, mut bses) = refresh_matrixses(&board_of_game); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `board_of_game` [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/algorithms.rs:1621:62 [INFO] [stdout] | [INFO] [stdout] 1621 | let (mut a_mats, mut xs, mut bs, _, _) = refresh_matrixs(&board_of_game); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `board_of_game` [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/board.rs:54:45 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn set_game_board(&mut self, board: &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] 54 ~ pub fn set_game_board(&mut self, board: &[Vec]) { [INFO] [stdout] 55 ~ let mut game_board_marked = board.to_owned(); [INFO] [stdout] 56 | for i in 0..game_board_marked.len() { [INFO] [stdout] ... [INFO] [stdout] 62 | } [INFO] [stdout] 63 ~ self.game_board = board.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/board.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | /// 用Board类估算一亿局高级里有几个8的python代码如下: [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 147 | /// 用Board类估算一亿局高级里有几个8的python代码如下: [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | return self.bbbv.unwrap(); [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] 201 - return self.bbbv.unwrap(); [INFO] [stdout] 201 + self.bbbv.unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | return self.cell0; [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] 227 - return self.cell0; [INFO] [stdout] 227 + self.cell0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | return self.cell1; [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] 234 - return self.cell1; [INFO] [stdout] 234 + self.cell1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:241:9 [INFO] [stdout] | [INFO] [stdout] 241 | return self.cell2; [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] 241 - return self.cell2; [INFO] [stdout] 241 + self.cell2 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | return self.cell3; [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] 248 - return self.cell3; [INFO] [stdout] 248 + self.cell3 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | return self.cell4; [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] 255 - return self.cell4; [INFO] [stdout] 255 + self.cell4 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:262:9 [INFO] [stdout] | [INFO] [stdout] 262 | return self.cell5; [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] 262 - return self.cell5; [INFO] [stdout] 262 + self.cell5 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | return self.cell6; [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] 269 - return self.cell6; [INFO] [stdout] 269 + self.cell6 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:276:9 [INFO] [stdout] | [INFO] [stdout] 276 | return self.cell7; [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] 276 - return self.cell7; [INFO] [stdout] 276 + self.cell7 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | return self.cell8; [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] 283 - return self.cell8; [INFO] [stdout] 283 + self.cell8 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Evfs` [INFO] [stdout] --> src/evfs.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | / pub fn new() -> Self { [INFO] [stdout] 30 | | Evfs { [INFO] [stdout] 31 | | file_name: String::new(), [INFO] [stdout] 32 | | raw_data: vec![], [INFO] [stdout] ... | [INFO] [stdout] 36 | | } [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] 27 + impl Default for Evfs { [INFO] [stdout] 28 + fn default() -> Self { [INFO] [stdout] 29 + Self::new() [INFO] [stdout] 30 + } [INFO] [stdout] 31 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/evfs.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | / if !cell.evf_video.data.can_analyse { [INFO] [stdout] 73 | | if cell.evf_video.parse().is_err() { [INFO] [stdout] 74 | | return false; [INFO] [stdout] 75 | | } [INFO] [stdout] 76 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 72 ~ if !cell.evf_video.data.can_analyse [INFO] [stdout] 73 ~ && cell.evf_video.parse().is_err() { [INFO] [stdout] 74 | return false; [INFO] [stdout] 75 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/evfs.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | / match version { [INFO] [stdout] 193 | | 0 => self.parse_v0()?, [INFO] [stdout] 194 | | _ => {}, [INFO] [stdout] 195 | | } [INFO] [stdout] | |_________^ help: try: `if version == 0 { self.parse_v0()? }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/evfs.rs:215:58 [INFO] [stdout] | [INFO] [stdout] 215 | cell.evf_video.data.analyse_for_features(&controller); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `controller` [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/evfs.rs:289:13 [INFO] [stdout] | [INFO] [stdout] 289 | / return (file_name.to_string() + &(".evfs".to_string())) [INFO] [stdout] 290 | | .as_str() [INFO] [stdout] 291 | | .to_string(); [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] 289 ~ (file_name.to_string() + &(".evfs".to_string())) [INFO] [stdout] 290 + .as_str() [INFO] [stdout] 291 ~ .to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/evfs.rs:281:59 [INFO] [stdout] | [INFO] [stdout] 281 | std::path::Path::new((file_name.to_string() + &(".evfs".to_string())).as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `".evfs"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/evfs.rs:285:42 [INFO] [stdout] | [INFO] [stdout] 285 | (file_name.to_string() + &(".evfs".to_string())).as_str(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `".evfs"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/evfs.rs:289:45 [INFO] [stdout] | [INFO] [stdout] 289 | return (file_name.to_string() + &(".evfs".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `".evfs"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/evfs.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 327 | let cells = &self.cells[index.start..index.end]; [INFO] [stdout] | ------------------------------------------------ unnecessary `let` binding [INFO] [stdout] 328 | cells [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] 327 ~ [INFO] [stdout] 328 ~ (&self.cells[index.start..index.end]) as _ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/videos/types.rs:142:1 [INFO] [stdout] | [INFO] [stdout] 142 | / impl Default for StaticParams { [INFO] [stdout] 143 | | fn default() -> Self { [INFO] [stdout] 144 | | StaticParams { [INFO] [stdout] 145 | | bbbv: 0, [INFO] [stdout] ... | [INFO] [stdout] 161 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 124 + #[derive(Default)] [INFO] [stdout] 125 | pub struct StaticParams { [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/utils.rs:1221:42 [INFO] [stdout] | [INFO] [stdout] 1221 | pub fn unsolvable_structure(board_check: &Vec>) -> 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] 1221 - pub fn unsolvable_structure(board_check: &Vec>) -> bool { [INFO] [stdout] 1221 + pub fn unsolvable_structure(board_check: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1234:9 [INFO] [stdout] | [INFO] [stdout] 1234 | / if i < row - 3 { [INFO] [stdout] 1235 | | if board[i][0] == -1 [INFO] [stdout] 1236 | | && board[i][1] == -1 [INFO] [stdout] 1237 | | && board[i + 3][0] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1248 | | } [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] 1234 ~ if i < row - 3 [INFO] [stdout] 1235 ~ && (board[i][0] == -1 [INFO] [stdout] 1236 | && board[i][1] == -1 [INFO] [stdout] ... [INFO] [stdout] 1243 | && board[i + 3][column - 2] == -1 [INFO] [stdout] 1244 ~ && board[i + 1][column - 1] + board[i + 2][column - 1] == -1) [INFO] [stdout] 1245 | { [INFO] [stdout] 1246 | return true; [INFO] [stdout] 1247 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1272:9 [INFO] [stdout] | [INFO] [stdout] 1272 | / if i < row - 3 { [INFO] [stdout] 1273 | | if board[i][2] == -1 [INFO] [stdout] 1274 | | && board[i + 3][2] == -1 [INFO] [stdout] 1275 | | && board[i + 1][0] + board[i + 1][1] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1286 | | } [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] 1272 ~ if i < row - 3 [INFO] [stdout] 1273 ~ && (board[i][2] == -1 [INFO] [stdout] 1274 | && board[i + 3][2] == -1 [INFO] [stdout] ... [INFO] [stdout] 1281 | && board[i + 1][column - 2] + board[i + 2][column - 2] == -1 [INFO] [stdout] 1282 ~ && board[i + 2][column - 2] + board[i + 2][column - 1] == -1) [INFO] [stdout] 1283 | { [INFO] [stdout] 1284 | return true; [INFO] [stdout] 1285 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1290:9 [INFO] [stdout] | [INFO] [stdout] 1290 | / if j < column - 3 { [INFO] [stdout] 1291 | | if board[0][j] == -1 [INFO] [stdout] 1292 | | && board[1][j] == -1 [INFO] [stdout] 1293 | | && board[0][j + 3] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1304 | | } [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] 1290 ~ if j < column - 3 [INFO] [stdout] 1291 ~ && (board[0][j] == -1 [INFO] [stdout] 1292 | && board[1][j] == -1 [INFO] [stdout] ... [INFO] [stdout] 1299 | && board[row - 2][j + 3] == -1 [INFO] [stdout] 1300 ~ && board[row - 1][j + 1] + board[row - 1][j + 2] == -1) [INFO] [stdout] 1301 | { [INFO] [stdout] 1302 | return true; [INFO] [stdout] 1303 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `buffer` [INFO] [stdout] --> src/videos/avf_video.rs:302:18 [INFO] [stdout] | [INFO] [stdout] 302 | for i in 3..8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 302 - for i in 3..8 { [INFO] [stdout] 302 + for in buffer.iter_mut().skip(3) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `buffer` [INFO] [stdout] --> src/videos/avf_video.rs:333:22 [INFO] [stdout] | [INFO] [stdout] 333 | for i in 0..8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 333 - for i in 0..8 { [INFO] [stdout] 333 + for in &mut buffer { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1328:9 [INFO] [stdout] | [INFO] [stdout] 1328 | / if j < column - 3 { [INFO] [stdout] 1329 | | if board[2][j] == -1 [INFO] [stdout] 1330 | | && board[2][j + 3] == -1 [INFO] [stdout] 1331 | | && board[0][j + 1] + board[1][j + 1] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1342 | | } [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] 1328 ~ if j < column - 3 [INFO] [stdout] 1329 ~ && (board[2][j] == -1 [INFO] [stdout] 1330 | && board[2][j + 3] == -1 [INFO] [stdout] ... [INFO] [stdout] 1337 | && board[row - 2][j + 1] + board[row - 2][j + 2] == -1 [INFO] [stdout] 1338 ~ && board[row - 2][j + 2] + board[row - 1][j + 2] == -1) [INFO] [stdout] 1339 | { [INFO] [stdout] 1340 | return true; [INFO] [stdout] 1341 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/rmv_video.rs:436:9 [INFO] [stdout] | [INFO] [stdout] 436 | return Ok(()); [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] 436 - return Ok(()); [INFO] [stdout] 436 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `u32` [INFO] [stdout] --> src/videos/rmv_video.rs:213:39 [INFO] [stdout] | [INFO] [stdout] 213 | let timestamp_boardgen: u32 = self.data.get_u32()?.into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.data.get_u32()?` [INFO] [stdout] | [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] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1388:13 [INFO] [stdout] | [INFO] [stdout] 1388 | / if j < column - 3 { [INFO] [stdout] 1389 | | if board[i][j] == -1 [INFO] [stdout] 1390 | | && board[i + 1][j] == -1 [INFO] [stdout] 1391 | | && board[i + 2][j] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1399 | | } [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] 1388 ~ if j < column - 3 [INFO] [stdout] 1389 ~ && board[i][j] == -1 [INFO] [stdout] 1390 | && board[i + 1][j] == -1 [INFO] [stdout] ... [INFO] [stdout] 1397 | return true; [INFO] [stdout] 1398 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/videos/rmv_video.rs:247:24 [INFO] [stdout] | [INFO] [stdout] 247 | self.data.nf = if self.data.get_u8()? == 1 { [INFO] [stdout] | ________________________^ [INFO] [stdout] 248 | | true [INFO] [stdout] 249 | | } else { [INFO] [stdout] 250 | | false [INFO] [stdout] 251 | | }; [INFO] [stdout] | |_________^ help: you can reduce it to: `self.data.get_u8()? == 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1400:13 [INFO] [stdout] | [INFO] [stdout] 1400 | / if i < row - 3 { [INFO] [stdout] 1401 | | if board[i][j] == -1 [INFO] [stdout] 1402 | | && board[i][j + 1] == -1 [INFO] [stdout] 1403 | | && board[i][j + 2] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1411 | | } [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] 1400 ~ if i < row - 3 [INFO] [stdout] 1401 ~ && board[i][j] == -1 [INFO] [stdout] 1402 | && board[i][j + 1] == -1 [INFO] [stdout] ... [INFO] [stdout] 1409 | return true; [INFO] [stdout] 1410 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/videos/rmv_video.rs:265:24 [INFO] [stdout] | [INFO] [stdout] 265 | utf8 = if self.data.get_u8()? == 1 { [INFO] [stdout] | ________________________^ [INFO] [stdout] 266 | | true [INFO] [stdout] 267 | | } else { [INFO] [stdout] 268 | | false [INFO] [stdout] 269 | | }; [INFO] [stdout] | |_________________^ help: you can reduce it to: `self.data.get_u8()? == 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1424:13 [INFO] [stdout] | [INFO] [stdout] 1424 | / if j < column - 3 && i < row - 3 { [INFO] [stdout] 1425 | | if board[i][j] == -1 [INFO] [stdout] 1426 | | && board[i + 3][j] == -1 [INFO] [stdout] 1427 | | && board[i][j + 3] == -1 [INFO] [stdout] ... | [INFO] [stdout] 1435 | | } [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] 1424 ~ if j < column - 3 && i < row - 3 [INFO] [stdout] 1425 ~ && board[i][j] == -1 [INFO] [stdout] 1426 | && board[i + 3][j] == -1 [INFO] [stdout] ... [INFO] [stdout] 1433 | return true; [INFO] [stdout] 1434 ~ } [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/utils.rs:1443:31 [INFO] [stdout] | [INFO] [stdout] 1443 | pub fn cal_bbbv_exp(board_in: &Vec>) -> usize { [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] 1443 ~ pub fn cal_bbbv_exp(board_in: &[Vec]) -> usize { [INFO] [stdout] 1444 ~ let mut board = board_in.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1461:32 [INFO] [stdout] | [INFO] [stdout] 1461 | } else if board_in[x - 1][j] == 0 { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 1462 | | if board[x - 1][j] < min_op_id { [INFO] [stdout] 1463 | | if flag_op { [INFO] [stdout] 1464 | | op_list[min_op_id as usize] = false; [INFO] [stdout] ... | [INFO] [stdout] 1470 | | } [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] 1461 ~ } else if board_in[x - 1][j] == 0 [INFO] [stdout] 1462 ~ && board[x - 1][j] < min_op_id { [INFO] [stdout] 1463 | if flag_op { [INFO] [stdout] ... [INFO] [stdout] 1468 | min_op_id = board[x - 1][j]; [INFO] [stdout] 1469 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1477:28 [INFO] [stdout] | [INFO] [stdout] 1477 | } else if board_in[x][y - 1] == 0 { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 1478 | | if board[x][y - 1] < min_op_id { [INFO] [stdout] 1479 | | if flag_op { [INFO] [stdout] 1480 | | op_list[min_op_id as usize] = false; [INFO] [stdout] ... | [INFO] [stdout] 1485 | | } [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] 1477 ~ } else if board_in[x][y - 1] == 0 [INFO] [stdout] 1478 ~ && board[x][y - 1] < min_op_id { [INFO] [stdout] 1479 | if flag_op { [INFO] [stdout] ... [INFO] [stdout] 1483 | } [INFO] [stdout] 1484 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/utils.rs:1489:29 [INFO] [stdout] | [INFO] [stdout] 1489 | op_list[op_id as usize] = true; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `op_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/videos/rmv_video.rs:404:34 [INFO] [stdout] | [INFO] [stdout] 404 | } else if c <= 14 || (c >= 18 && c <= 27) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use: `(18..=27).contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1502:32 [INFO] [stdout] | [INFO] [stdout] 1502 | } else if board_in[x + 1][j] == 0 { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 1503 | | if board[x + 1][j] < board[x][y] { [INFO] [stdout] 1504 | | op_list[board[x][y] as usize] = false; [INFO] [stdout] 1505 | | board[x][y] = board[x + 1][j]; [INFO] [stdout] 1506 | | } [INFO] [stdout] 1507 | | } [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] 1502 ~ } else if board_in[x + 1][j] == 0 [INFO] [stdout] 1503 ~ && board[x + 1][j] < board[x][y] { [INFO] [stdout] 1504 | op_list[board[x][y] as usize] = false; [INFO] [stdout] 1505 | board[x][y] = board[x + 1][j]; [INFO] [stdout] 1506 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1514:28 [INFO] [stdout] | [INFO] [stdout] 1514 | } else if board_in[x][y + 1] == 0 { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 1515 | | if board[x][y + 1] < board[x][y] { [INFO] [stdout] 1516 | | op_list[board[x][y] as usize] = false; [INFO] [stdout] 1517 | | board[x][y] = board[x][y + 1]; [INFO] [stdout] 1518 | | } [INFO] [stdout] 1519 | | } [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] 1514 ~ } else if board_in[x][y + 1] == 0 [INFO] [stdout] 1515 ~ && board[x][y + 1] < board[x][y] { [INFO] [stdout] 1516 | op_list[board[x][y] as usize] = false; [INFO] [stdout] 1517 | board[x][y] = board[x][y + 1]; [INFO] [stdout] 1518 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `op_list` [INFO] [stdout] --> src/utils.rs:1524:14 [INFO] [stdout] | [INFO] [stdout] 1524 | for i in 0..op_id + 1 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1524 - for i in 0..op_id + 1 { [INFO] [stdout] 1524 + for in op_list.iter().take(op_id + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/evf_video.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | return Ok(()); [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] 220 - return Ok(()); [INFO] [stdout] 220 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:1536:30 [INFO] [stdout] | [INFO] [stdout] 1536 | pub fn legalize_board(board: &mut 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] 1536 - pub fn legalize_board(board: &mut Vec>) { [INFO] [stdout] 1536 + pub fn legalize_board(board: &mut [Vec]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board` [INFO] [stdout] --> src/utils.rs:1546:26 [INFO] [stdout] | [INFO] [stdout] 1546 | for i in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1546 - for i in max(1, x) - 1..min(row, x + 2) { [INFO] [stdout] 1546 + for in board.iter().take(min(row, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `board` [INFO] [stdout] --> src/utils.rs:1547:30 [INFO] [stdout] | [INFO] [stdout] 1547 | for j in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1547 - for j in max(1, y) - 1..min(column, y + 2) { [INFO] [stdout] 1547 + for in board.iter().take(min(column, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/utils.rs:1590:6 [INFO] [stdout] | [INFO] [stdout] 1590 | ) -> (Vec>>, Vec>, Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:176:13 [INFO] [stdout] | [INFO] [stdout] 176 | let mouse; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 176 ~ [INFO] [stdout] 177 ~ let mouse = match byte { [INFO] [stdout] 178 | 0 => { [INFO] [stdout] ... [INFO] [stdout] 181 | } [INFO] [stdout] 182 ~ 1 => "mv", [INFO] [stdout] 183 ~ 2 => "lc", [INFO] [stdout] 184 ~ 3 => "lr", [INFO] [stdout] 185 ~ 4 => "rc", [INFO] [stdout] 186 ~ 5 => "rr", [INFO] [stdout] 187 ~ 6 => "mc", [INFO] [stdout] 188 ~ 7 => "mr", [INFO] [stdout] 189 ~ 8 => "pf", [INFO] [stdout] 190 ~ 9 => "cc", [INFO] [stdout] 191 | 255 => { [INFO] [stdout] ... [INFO] [stdout] 194 | } [INFO] [stdout] 195 ~ _ => "ub", // 不可能 [INFO] [stdout] 196 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/evf_video.rs:343:9 [INFO] [stdout] | [INFO] [stdout] 343 | return Ok(()); [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] 343 - return Ok(()); [INFO] [stdout] 343 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `matrix_a` [INFO] [stdout] --> src/utils.rs:1664:22 [INFO] [stdout] | [INFO] [stdout] 1664 | for k in 0..matrix_a.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1664 - for k in 0..matrix_a.len() { [INFO] [stdout] 1664 + for in &mut matrix_a { [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/utils.rs:1697:20 [INFO] [stdout] | [INFO] [stdout] 1697 | board_of_game: &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] 1697 ~ board_of_game: &[Vec], [INFO] [stdout] 1698 | xy: &(usize, usize), [INFO] [stdout] ... [INFO] [stdout] 1708 | } [INFO] [stdout] 1709 ~ let mut board_of_game_clone = board_of_game.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:1702:14 [INFO] [stdout] | [INFO] [stdout] 1702 | for m in max(1, xy.0) - 1..min(row, xy.0 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1702 - for m in max(1, xy.0) - 1..min(row, xy.0 + 2) { [INFO] [stdout] 1702 + for in board_of_game.iter().take(min(row, xy.0 + 2)).skip(max(1, xy.0) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:1703:18 [INFO] [stdout] | [INFO] [stdout] 1703 | for n in max(1, xy.1) - 1..min(column, xy.1 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1703 - for n in max(1, xy.1) - 1..min(column, xy.1 + 2) { [INFO] [stdout] 1703 + for in board_of_game.iter().take(min(column, xy.1 + 2)).skip(max(1, xy.1) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:299:13 [INFO] [stdout] | [INFO] [stdout] 299 | let mouse; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 299 ~ [INFO] [stdout] 300 ~ let mouse = match byte { [INFO] [stdout] 301 | 0 => { [INFO] [stdout] ... [INFO] [stdout] 304 | } [INFO] [stdout] 305 ~ 1 => "mv", [INFO] [stdout] 306 ~ 2 => "lc", [INFO] [stdout] 307 ~ 3 => "lr", [INFO] [stdout] 308 ~ 4 => "rc", [INFO] [stdout] 309 ~ 5 => "rr", [INFO] [stdout] 310 ~ 6 => "mc", [INFO] [stdout] 311 ~ 7 => "mr", [INFO] [stdout] 312 ~ 8 => "pf", [INFO] [stdout] 313 ~ 9 => "cc", [INFO] [stdout] 314 | 255 => { [INFO] [stdout] ... [INFO] [stdout] 317 | } [INFO] [stdout] 318 ~ _ => "ub", // 不可能 [INFO] [stdout] 319 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `mm` is only used to index `board_of_game_clone` [INFO] [stdout] --> src/utils.rs:1717:31 [INFO] [stdout] | [INFO] [stdout] 1717 | for mm in max(1, m) - 1..min(row, m + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1717 - for mm in max(1, m) - 1..min(row, m + 2) { [INFO] [stdout] 1717 + for in board_of_game_clone.iter().take(min(row, m + 2)).skip(max(1, m) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `nn` is only used to index `board_of_game_clone` [INFO] [stdout] --> src/utils.rs:1718:35 [INFO] [stdout] | [INFO] [stdout] 1718 | for nn in max(1, n) - 1..min(column, n + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1718 - for nn in max(1, n) - 1..min(column, n + 2) { [INFO] [stdout] 1718 + for in board_of_game_clone.iter().take(min(column, n + 2)).skip(max(1, n) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:1760:5 [INFO] [stdout] | [INFO] [stdout] 1760 | return mid_num > 0; [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] 1760 - return mid_num > 0; [INFO] [stdout] 1760 + mid_num > 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/evf_video.rs:473:9 [INFO] [stdout] | [INFO] [stdout] 473 | return Ok(()); [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] 473 - return Ok(()); [INFO] [stdout] 473 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1740:5 [INFO] [stdout] | [INFO] [stdout] 1740 | / if pos.0 > 0 { [INFO] [stdout] 1741 | | if mid_num < surround_cell_num(board_of_game, (pos.0 - 1, pos.1)) { [INFO] [stdout] 1742 | | return false; [INFO] [stdout] 1743 | | } [INFO] [stdout] 1744 | | } [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] 1740 ~ if pos.0 > 0 [INFO] [stdout] 1741 ~ && mid_num < surround_cell_num(board_of_game, (pos.0 - 1, pos.1)) { [INFO] [stdout] 1742 | return false; [INFO] [stdout] 1743 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1745:5 [INFO] [stdout] | [INFO] [stdout] 1745 | / if pos.1 > 0 { [INFO] [stdout] 1746 | | if mid_num < surround_cell_num(board_of_game, (pos.0, pos.1 - 1)) { [INFO] [stdout] 1747 | | return false; [INFO] [stdout] 1748 | | } [INFO] [stdout] 1749 | | } [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] 1745 ~ if pos.1 > 0 [INFO] [stdout] 1746 ~ && mid_num < surround_cell_num(board_of_game, (pos.0, pos.1 - 1)) { [INFO] [stdout] 1747 | return false; [INFO] [stdout] 1748 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1750:5 [INFO] [stdout] | [INFO] [stdout] 1750 | / if pos.0 + 1 < row { [INFO] [stdout] 1751 | | if mid_num < surround_cell_num(board_of_game, (pos.0 + 1, pos.1)) { [INFO] [stdout] 1752 | | return false; [INFO] [stdout] 1753 | | } [INFO] [stdout] 1754 | | } [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] 1750 ~ if pos.0 + 1 < row [INFO] [stdout] 1751 ~ && mid_num < surround_cell_num(board_of_game, (pos.0 + 1, pos.1)) { [INFO] [stdout] 1752 | return false; [INFO] [stdout] 1753 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/utils.rs:1755:5 [INFO] [stdout] | [INFO] [stdout] 1755 | / if pos.1 + 1 < column { [INFO] [stdout] 1756 | | if mid_num < surround_cell_num(board_of_game, (pos.0, pos.1 + 1)) { [INFO] [stdout] 1757 | | return false; [INFO] [stdout] 1758 | | } [INFO] [stdout] 1759 | | } [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] 1755 ~ if pos.1 + 1 < column [INFO] [stdout] 1756 ~ && mid_num < surround_cell_num(board_of_game, (pos.0, pos.1 + 1)) { [INFO] [stdout] 1757 | return false; [INFO] [stdout] 1758 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:1783:9 [INFO] [stdout] | [INFO] [stdout] 1783 | return num; [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] 1783 - return num; [INFO] [stdout] 1783 + num [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:1785:9 [INFO] [stdout] | [INFO] [stdout] 1785 | return -1; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1785 - return -1; [INFO] [stdout] 1785 + -1 [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/utils.rs:1765:37 [INFO] [stdout] | [INFO] [stdout] 1765 | fn surround_cell_num(board_of_game: &Vec>, pos: (usize, usize)) -> i8 { [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] 1765 - fn surround_cell_num(board_of_game: &Vec>, pos: (usize, usize)) -> i8 { [INFO] [stdout] 1765 + fn surround_cell_num(board_of_game: &[Vec], pos: (usize, usize)) -> i8 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:1773:14 [INFO] [stdout] | [INFO] [stdout] 1773 | for m in max(1, pos.0) - 1..min(row, pos.0 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1773 - for m in max(1, pos.0) - 1..min(row, pos.0 + 2) { [INFO] [stdout] 1773 + for in board_of_game.iter().take(min(row, pos.0 + 2)).skip(max(1, pos.0) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `board_of_game` [INFO] [stdout] --> src/utils.rs:1774:18 [INFO] [stdout] | [INFO] [stdout] 1774 | for n in max(1, pos.1) - 1..min(column, pos.1 + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1774 - for n in max(1, pos.1) - 1..min(column, pos.1 + 2) { [INFO] [stdout] 1774 + for in board_of_game.iter().take(min(column, pos.1 + 2)).skip(max(1, pos.1) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:1790:33 [INFO] [stdout] | [INFO] [stdout] 1790 | pub fn cal_board_numbers(board: &mut 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] 1790 - pub fn cal_board_numbers(board: &mut Vec>) { [INFO] [stdout] 1790 + pub fn cal_board_numbers(board: &mut [Vec]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:426:13 [INFO] [stdout] | [INFO] [stdout] 426 | let mouse; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 426 ~ [INFO] [stdout] 427 ~ let mouse = match byte { [INFO] [stdout] 428 | 0 => { [INFO] [stdout] ... [INFO] [stdout] 431 | } [INFO] [stdout] 432 ~ 1 => "mv", [INFO] [stdout] 433 ~ 2 => "lc", [INFO] [stdout] 434 ~ 3 => "lr", [INFO] [stdout] 435 ~ 4 => "rc", [INFO] [stdout] 436 ~ 5 => "rr", [INFO] [stdout] 437 ~ 6 => "mc", [INFO] [stdout] 438 ~ 7 => "mr", [INFO] [stdout] 439 ~ 8 => "pf", [INFO] [stdout] 440 ~ 9 => "cc", [INFO] [stdout] 441 ~ 10 => "l", [INFO] [stdout] 442 ~ 11 => "r", [INFO] [stdout] 443 ~ 12 => "m", [INFO] [stdout] 444 | 255 => { [INFO] [stdout] ... [INFO] [stdout] 447 | } [INFO] [stdout] 448 ~ _ => "ub", // 不可能 [INFO] [stdout] 449 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `board` [INFO] [stdout] --> src/utils.rs:1796:26 [INFO] [stdout] | [INFO] [stdout] 1796 | for j in max(1, x) - 1..min(height, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1796 - for j in max(1, x) - 1..min(height, x + 2) { [INFO] [stdout] 1796 + for in board.iter_mut().take(min(height, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `board` [INFO] [stdout] --> src/utils.rs:1797:30 [INFO] [stdout] | [INFO] [stdout] 1797 | for k in max(1, y) - 1..min(width, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1797 - for k in max(1, y) - 1..min(width, y + 2) { [INFO] [stdout] 1797 + for in board.iter_mut().take(min(width, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/evf_video.rs:661:9 [INFO] [stdout] | [INFO] [stdout] 661 | return Ok(()); [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] 661 - return Ok(()); [INFO] [stdout] 661 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:53:6 [INFO] [stdout] | [INFO] [stdout] 53 | ) -> Result<(Vec<(usize, usize)>, Vec<(usize, usize)>), usize> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is used to index `a_mats` [INFO] [stdout] --> src/algorithms.rs:72:26 [INFO] [stdout] | [INFO] [stdout] 72 | for k in 0..matrix_column { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 72 - for k in 0..matrix_column { [INFO] [stdout] 72 + for (k, ) in a_mats.iter().enumerate().take(matrix_column) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:542:9 [INFO] [stdout] | [INFO] [stdout] 542 | let mouse; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 542 ~ [INFO] [stdout] 543 ~ let mouse = match byte { [INFO] [stdout] 544 ~ 1 => "mv", [INFO] [stdout] 545 ~ 2 => "lc", [INFO] [stdout] 546 ~ 4 => "rc", [INFO] [stdout] 547 ~ 8 => "pf", [INFO] [stdout] 548 | _ => panic!(), // impossible [INFO] [stdout] 549 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:147:6 [INFO] [stdout] | [INFO] [stdout] 147 | ) -> Result<(Vec<(usize, usize)>, Vec<(usize, usize)>), usize> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/algorithms.rs:146:20 [INFO] [stdout] | [INFO] [stdout] 146 | board_of_game: &mut 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] 146 - board_of_game: &mut Vec>, [INFO] [stdout] 146 + board_of_game: &mut [Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:583:21 [INFO] [stdout] | [INFO] [stdout] 583 | let mouse; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 583 ~ [INFO] [stdout] 584 ~ let mouse = match byte_mouse { [INFO] [stdout] 585 ~ 1 => "mv", [INFO] [stdout] 586 ~ 2 => "lc", [INFO] [stdout] 587 ~ 3 => "lr", [INFO] [stdout] 588 ~ 4 => "rc", [INFO] [stdout] 589 ~ 5 => "rr", [INFO] [stdout] 590 ~ 6 => "mc", [INFO] [stdout] 591 ~ 7 => "mr", [INFO] [stdout] 592 ~ 8 => "pf", [INFO] [stdout] 593 ~ 9 => "cc", [INFO] [stdout] 594 ~ 10 => "l", [INFO] [stdout] 595 ~ 11 => "r", [INFO] [stdout] 596 ~ 12 => "m", [INFO] [stdout] 597 | _ => panic!(), [INFO] [stdout] 598 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:623:21 [INFO] [stdout] | [INFO] [stdout] 623 | let game_state; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `game_state` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 623 ~ [INFO] [stdout] 624 ~ let game_state = match byte_game_state { [INFO] [stdout] 625 ~ 81 => "replay", [INFO] [stdout] 626 ~ 82 => "win", [INFO] [stdout] 627 ~ 83 => "fail", [INFO] [stdout] 628 ~ 99 => "error", [INFO] [stdout] 629 | _ => panic!(), [INFO] [stdout] 630 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `t` is only used to index `a_mats` [INFO] [stdout] --> src/algorithms.rs:181:34 [INFO] [stdout] | [INFO] [stdout] 181 | for t in 0..matrix_row { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 181 - for t in 0..matrix_row { [INFO] [stdout] 181 + for in a_mats.iter_mut().take(matrix_row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:199:20 [INFO] [stdout] | [INFO] [stdout] 199 | Some(_) => 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] 199 - Some(_) => return true, [INFO] [stdout] 199 + Some(_) => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:200:17 [INFO] [stdout] | [INFO] [stdout] 200 | None => 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] 200 - None => return false, [INFO] [stdout] 200 + None => false, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/algorithms.rs:202:5 [INFO] [stdout] | [INFO] [stdout] 202 | / match ans { [INFO] [stdout] 203 | | Some(_) => return Err(6), [INFO] [stdout] 204 | | None => {} [INFO] [stdout] 205 | | } [INFO] [stdout] | |_____^ help: try: `if let Some(_) = ans { return Err(6) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:220:6 [INFO] [stdout] | [INFO] [stdout] 220 | ) -> Result<(Vec<((usize, usize), f64)>, f64, [usize; 3], usize), usize> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/videos/mvf_video.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | / fn parse_event( [INFO] [stdout] 95 | | &self, [INFO] [stdout] 96 | | lb: u16, [INFO] [stdout] 97 | | rb: u16, [INFO] [stdout] ... | [INFO] [stdout] 105 | | prev_y: u16, [INFO] [stdout] 106 | | ) -> Vec { [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:232:25 [INFO] [stdout] | [INFO] [stdout] 232 | refresh_matrixs(&board_of_game); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `board_of_game` [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/videos/mvf_video.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | return evs; [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] 129 - return evs; [INFO] [stdout] 129 + evs [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/mvf_video.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | return 1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 134 - return 1; [INFO] [stdout] 134 + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/mvf_video.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | return 0; [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] 136 - return 0; [INFO] [stdout] 136 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `table_minenum_s` [INFO] [stdout] --> src/algorithms.rs:279:14 [INFO] [stdout] | [INFO] [stdout] 279 | for i in 0..block_num { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 279 - for i in 0..block_num { [INFO] [stdout] 279 + for in table_minenum_s.iter().take(block_num) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `table_minenum_s` [INFO] [stdout] --> src/algorithms.rs:326:14 [INFO] [stdout] | [INFO] [stdout] 326 | for i in 0..block_num + 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 326 - for i in 0..block_num + 1 { [INFO] [stdout] 326 + for in table_minenum_s.iter().take(block_num + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `s` [INFO] [stdout] --> src/videos/mvf_video.rs:204:18 [INFO] [stdout] | [INFO] [stdout] 204 | for i in 0..8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 204 - for i in 0..8 { [INFO] [stdout] 204 + for (i, ) in s.iter_mut().enumerate().take(8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cell_id` is only used to index `comb_relp_s` [INFO] [stdout] --> src/algorithms.rs:367:28 [INFO] [stdout] | [INFO] [stdout] 367 | for cell_id in 0..cells_len { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 367 - for cell_id in 0..cells_len { [INFO] [stdout] 367 + for in comb_relp_s.iter().take(cells_len) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `s` [INFO] [stdout] --> src/videos/mvf_video.rs:236:22 [INFO] [stdout] | [INFO] [stdout] 236 | for j in 0..40 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 236 - for j in 0..40 { [INFO] [stdout] 236 + for (j, ) in s.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `ii` is only used to index `e` [INFO] [stdout] --> src/videos/mvf_video.rs:249:19 [INFO] [stdout] | [INFO] [stdout] 249 | for ii in 0..5 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 249 - for ii in 0..5 { [INFO] [stdout] 249 + for in &mut e { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:459:30 [INFO] [stdout] | [INFO] [stdout] 459 | let pp = cal_probability(&board_of_game, minenum)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `board_of_game` [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 `if` has identical blocks [INFO] [stdout] --> src/algorithms.rs:469:49 [INFO] [stdout] | [INFO] [stdout] 469 | } else if board_of_game[r][c] == 12 { [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 470 | | p[r][c] = 0.0; [INFO] [stdout] 471 | | } else if p[r][c] < -0.5 { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/algorithms.rs:471:38 [INFO] [stdout] | [INFO] [stdout] 471 | } else if p[r][c] < -0.5 { [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 472 | | p[r][c] = 0.0; [INFO] [stdout] 473 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `ii` is only used to index `e` [INFO] [stdout] --> src/videos/mvf_video.rs:292:23 [INFO] [stdout] | [INFO] [stdout] 292 | for ii in 0..5 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 292 - for ii in 0..5 { [INFO] [stdout] 292 + for in &mut e { [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/algorithms.rs:499:20 [INFO] [stdout] | [INFO] [stdout] 499 | board_of_game: &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] 499 ~ board_of_game: &[Vec], [INFO] [stdout] 500 | minenum: usize, [INFO] [stdout] ... [INFO] [stdout] 506 | for (cell_id, &(x, y)) in cells.iter().enumerate() { [INFO] [stdout] 507 ~ let mut board_of_game_modified = board_of_game.to_owned(); [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/algorithms.rs:501:12 [INFO] [stdout] | [INFO] [stdout] 501 | cells: &Vec<(usize, usize)>, [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] 501 - cells: &Vec<(usize, usize)>, [INFO] [stdout] 501 + cells: &[(usize, usize)], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/mvf_video.rs:303:13 [INFO] [stdout] | [INFO] [stdout] 303 | let mouse_s; [INFO] [stdout] | ^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 317 | mouse_s = self.parse_event(lb, rb, mb, x, y, prev_lb, prev_rb, prev_mb, prev_x, prev_y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse_s` here [INFO] [stdout] | [INFO] [stdout] 303 ~ [INFO] [stdout] 304 | [INFO] [stdout] ... [INFO] [stdout] 316 | [INFO] [stdout] 317 ~ let mouse_s = self.parse_event(lb, rb, mb, x, y, prev_lb, prev_rb, prev_mb, prev_x, prev_y); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/algorithms.rs:516:21 [INFO] [stdout] | [INFO] [stdout] 516 | let p; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `p` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 516 ~ [INFO] [stdout] 517 ~ let p = match cal_probability_onboard(&board_of_game_modified, minenum as f64) { [INFO] [stdout] 518 ~ Ok((ppp, _)) => ppp, [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/algorithms.rs:538:17 [INFO] [stdout] | [INFO] [stdout] 538 | game_board: &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] 538 ~ game_board: &[Vec], [INFO] [stdout] 539 | minenum: f64, [INFO] [stdout] ... [INFO] [stdout] 542 | let mut poss = 1.0; [INFO] [stdout] 543 ~ let mut game_board_modified = game_board.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/mvf_video.rs:361:17 [INFO] [stdout] | [INFO] [stdout] 361 | return self.read_097(); [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] 361 - return self.read_097(); [INFO] [stdout] 361 + self.read_097() [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/algorithms.rs:540:12 [INFO] [stdout] | [INFO] [stdout] 540 | cells: &Vec<(usize, usize)>, [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] 540 - cells: &Vec<(usize, usize)>, [INFO] [stdout] 540 + cells: &[(usize, usize)], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:583:6 [INFO] [stdout] | [INFO] [stdout] 583 | ) -> (Vec<(usize, usize)>, Vec<(usize, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/algorithms.rs:580:13 [INFO] [stdout] | [INFO] [stdout] 580 | a_mats: &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] 580 - a_mats: &Vec>>, [INFO] [stdout] 580 + a_mats: &[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/algorithms.rs:581:9 [INFO] [stdout] | [INFO] [stdout] 581 | xs: &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] 581 - xs: &Vec>, [INFO] [stdout] 581 + xs: &[Vec<(usize, usize)>], [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/algorithms.rs:582:9 [INFO] [stdout] | [INFO] [stdout] 582 | bs: &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] 582 - bs: &Vec>, [INFO] [stdout] 582 + bs: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/videos/base_video.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | /// 其中`9906`这四位数字,分别表示毫秒整除100、毫秒整除10(一或二位数)、毫秒对10取余。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 190 | /// 其中`9906`这四位数字,分别表示毫秒整除100、毫秒整除10(一或二位数)、毫秒对10取余。 [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/videos/base_video.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | /// 所以`9906`就是906毫秒;再例如`083`就是83毫秒。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 191 | /// 所以`9906`就是906毫秒;再例如`083`就是83毫秒。 [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `ii` is only used to index `table_cell_minenum_i` [INFO] [stdout] --> src/algorithms.rs:614:23 [INFO] [stdout] | [INFO] [stdout] 614 | for ii in 0..table_cell_minenum_i.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 614 - for ii in 0..table_cell_minenum_i.len() { [INFO] [stdout] 614 + for in &table_cell_minenum_i { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:643:5 [INFO] [stdout] | [INFO] [stdout] 643 | 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] 643 - return true; [INFO] [stdout] 643 + true [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/algorithms.rs:633:27 [INFO] [stdout] | [INFO] [stdout] 633 | fn is_victory(game_board: &Vec>, board: &Vec>) -> 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] 633 - fn is_victory(game_board: &Vec>, board: &Vec>) -> bool { [INFO] [stdout] 633 + fn is_victory(game_board: &[Vec], board: &Vec>) -> bool { [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/algorithms.rs:633:50 [INFO] [stdout] | [INFO] [stdout] 633 | fn is_victory(game_board: &Vec>, board: &Vec>) -> 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] 633 - fn is_victory(game_board: &Vec>, board: &Vec>) -> bool { [INFO] [stdout] 633 + fn is_victory(game_board: &Vec>, board: &[Vec]) -> bool { [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/algorithms.rs:663:42 [INFO] [stdout] | [INFO] [stdout] 663 | fn is_victory(&mut self, game_board: &Vec>, board: &Vec>) -> 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] 663 - fn is_victory(&mut self, game_board: &Vec>, board: &Vec>) -> bool { [INFO] [stdout] 663 + fn is_victory(&mut self, game_board: &[Vec], board: &Vec>) -> bool { [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/algorithms.rs:663:65 [INFO] [stdout] | [INFO] [stdout] 663 | fn is_victory(&mut self, game_board: &Vec>, board: &Vec>) -> 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] 663 - fn is_victory(&mut self, game_board: &Vec>, board: &Vec>) -> bool { [INFO] [stdout] 663 + fn is_victory(&mut self, game_board: &Vec>, board: &[Vec]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/algorithms.rs:665:13 [INFO] [stdout] | [INFO] [stdout] 665 | / if game_board[self.pointer_x][j] < 10 { [INFO] [stdout] 666 | | if game_board[self.pointer_x][j] != board[self.pointer_x][j] { [INFO] [stdout] 667 | | return false; // 安全性相关(发生作弊) [INFO] [stdout] 668 | | } [INFO] [stdout] 669 | | } [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] 665 ~ if game_board[self.pointer_x][j] < 10 [INFO] [stdout] 666 ~ && game_board[self.pointer_x][j] != board[self.pointer_x][j] { [INFO] [stdout] 667 | return false; // 安全性相关(发生作弊) [INFO] [stdout] 668 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/algorithms.rs:677:17 [INFO] [stdout] | [INFO] [stdout] 677 | / if game_board[i][j] < 10 { [INFO] [stdout] 678 | | if game_board[i][j] != board[i][j] { [INFO] [stdout] 679 | | return false; // 安全性相关(发生作弊) [INFO] [stdout] 680 | | } [INFO] [stdout] 681 | | } [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] 677 ~ if game_board[i][j] < 10 [INFO] [stdout] 678 ~ && game_board[i][j] != board[i][j] { [INFO] [stdout] 679 | return false; // 安全性相关(发生作弊) [INFO] [stdout] 680 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:701:29 [INFO] [stdout] | [INFO] [stdout] 701 | if unsolvable_structure(&board) { [INFO] [stdout] | ^^^^^^ help: change this to: `board` [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/algorithms.rs:712:38 [INFO] [stdout] | [INFO] [stdout] 712 | if judge.is_victory(&game_board, &board) { [INFO] [stdout] | ^^^^^^ help: change this to: `board` [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/algorithms.rs:740:42 [INFO] [stdout] | [INFO] [stdout] 740 | if judge.is_victory(&game_board, &board) { [INFO] [stdout] | ^^^^^^ help: change this to: `board` [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/algorithms.rs:763:32 [INFO] [stdout] | [INFO] [stdout] 763 | if is_victory(&game_board, &board) { [INFO] [stdout] | ^^^^^^ help: change this to: `board` [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: using `clone` on type `MouseState` which implements the `Copy` trait [INFO] [stdout] --> src/videos/base_video.rs:420:35 [INFO] [stdout] | [INFO] [stdout] 420 | svi.mouse_state = b.mouse_state.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `b.mouse_state` [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: the loop variable `i` is used to index `game_board` [INFO] [stdout] --> src/algorithms.rs:879:14 [INFO] [stdout] | [INFO] [stdout] 879 | for i in 0..row { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 879 - for i in 0..row { [INFO] [stdout] 879 + for (i, ) in game_board.iter_mut().enumerate().take(row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `game_board` [INFO] [stdout] --> src/algorithms.rs:880:18 [INFO] [stdout] | [INFO] [stdout] 880 | for j in 0..column { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 880 - for j in 0..column { [INFO] [stdout] 880 + for (j, ) in game_board.iter_mut().enumerate().take(column) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/algorithms.rs:939:12 [INFO] [stdout] | [INFO] [stdout] 939 | if x0 == 0 && y0 == 0 [INFO] [stdout] | ____________^ [INFO] [stdout] 940 | | || x0 == 0 && y0 == column - 1 [INFO] [stdout] 941 | | || x0 == row - 1 && y0 == 0 [INFO] [stdout] 942 | | || x0 == row - 1 && y0 == column - 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] help: try [INFO] [stdout] | [INFO] [stdout] 939 - if x0 == 0 && y0 == 0 [INFO] [stdout] 940 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 941 - || x0 == row - 1 && y0 == 0 [INFO] [stdout] 942 - || x0 == row - 1 && y0 == column - 1 [INFO] [stdout] 939 + if !(y0 != 0 && y0 != column - 1 || x0 != 0 && x0 != row - 1) [INFO] [stdout] | [INFO] [stdout] 939 - if x0 == 0 && y0 == 0 [INFO] [stdout] 940 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 941 - || x0 == row - 1 && y0 == 0 [INFO] [stdout] 942 - || x0 == row - 1 && y0 == column - 1 [INFO] [stdout] 939 + if (x0 == row - 1 || x0 == 0) && (y0 == column - 1 || y0 == 0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/algorithms.rs:939:12 [INFO] [stdout] | [INFO] [stdout] 939 | if x0 == 0 && y0 == 0 [INFO] [stdout] | ____________^ [INFO] [stdout] 940 | | || x0 == 0 && y0 == column - 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] help: try [INFO] [stdout] | [INFO] [stdout] 939 - if x0 == 0 && y0 == 0 [INFO] [stdout] 940 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 939 + if !(x0 != 0 || y0 != 0 && y0 != column - 1) [INFO] [stdout] | [INFO] [stdout] 939 - if x0 == 0 && y0 == 0 [INFO] [stdout] 940 - || x0 == 0 && y0 == column - 1 [INFO] [stdout] 939 + if (y0 == column - 1 || y0 == 0) && x0 == 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/videos/base_video.rs:553:13 [INFO] [stdout] | [INFO] [stdout] 553 | / match o { [INFO] [stdout] 554 | | &"high_risk_guess" => analyse_high_risk_guess(self), [INFO] [stdout] 555 | | &"jump_judge" => analyse_jump_judge(self), [INFO] [stdout] 556 | | &"needless_guess" => analyse_needless_guess(self), [INFO] [stdout] ... | [INFO] [stdout] 561 | | _ => panic!("not supported analysis feature!"), [INFO] [stdout] 562 | | }; [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] 553 ~ match *o { [INFO] [stdout] 554 ~ "high_risk_guess" => analyse_high_risk_guess(self), [INFO] [stdout] 555 ~ "jump_judge" => analyse_jump_judge(self), [INFO] [stdout] 556 ~ "needless_guess" => analyse_needless_guess(self), [INFO] [stdout] 557 ~ "mouse_trace" => analyse_mouse_trace(self), [INFO] [stdout] 558 ~ "vision_transfer" => analyse_vision_transfer(self), [INFO] [stdout] 559 ~ "pluck" => analyse_pluck(self), [INFO] [stdout] 560 ~ "super_fl_local" => analyse_super_fl_local(self), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video.rs:566:5 [INFO] [stdout] | [INFO] [stdout] 566 | pub fn get_pluck(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] = note: `#[warn(clippy::result_unit_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video.rs:597:5 [INFO] [stdout] | [INFO] [stdout] 597 | pub fn set_board(&mut self, board: Vec>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `b` [INFO] [stdout] --> src/algorithms.rs:991:14 [INFO] [stdout] | [INFO] [stdout] 991 | for i in 0..row { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 991 - for i in 0..row { [INFO] [stdout] 991 + for in b.iter_mut().take(row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `b` [INFO] [stdout] --> src/algorithms.rs:992:18 [INFO] [stdout] | [INFO] [stdout] 992 | for j in 0..column { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 992 - for j in 0..column { [INFO] [stdout] 992 + for in b.iter_mut().take(column) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is only used to index `b` [INFO] [stdout] --> src/algorithms.rs:1002:26 [INFO] [stdout] | [INFO] [stdout] 1002 | for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1002 - for m in max(1, i) - 1..min(row, i + 2) { [INFO] [stdout] 1002 + for in b.iter_mut().take(min(row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is only used to index `b` [INFO] [stdout] --> src/algorithms.rs:1003:30 [INFO] [stdout] | [INFO] [stdout] 1003 | for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1003 - for n in max(1, j) - 1..min(column, j + 2) { [INFO] [stdout] 1003 + for in b.iter_mut().take(min(column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1247:5 [INFO] [stdout] | [INFO] [stdout] 1247 | return (vec![], 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] 1247 - return (vec![], false); [INFO] [stdout] 1247 + (vec![], false) [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/algorithms.rs:1043:12 [INFO] [stdout] | [INFO] [stdout] 1043 | board: &Vec>, // 当前的board,数字没有计算,只有0,-1,-10 [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] 1043 ~ board: &[Vec], // 当前的board,数字没有计算,只有0,-1,-10 [INFO] [stdout] 1044 | board_of_game: &Vec>, // 当前的board_of_game,只有10,1(没有计算的数字),11,0(起手位置) [INFO] [stdout] ... [INFO] [stdout] 1057 | // print_matrix(board_of_game); [INFO] [stdout] 1058 ~ let mut board_clone = board.to_owned(); // 克隆一个board的备份 [INFO] [stdout] 1059 | let mut game_board_clone = board_of_game.clone(); // 克隆一个board_of_game的备份 [INFO] [stdout] ... [INFO] [stdout] 1238 | } else { [INFO] [stdout] 1239 ~ board_clone = board.to_owned(); [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/algorithms.rs:1044:20 [INFO] [stdout] | [INFO] [stdout] 1044 | board_of_game: &Vec>, // 当前的board_of_game,只有10,1(没有计算的数字),11,0(起手位置) [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] 1044 ~ board_of_game: &[Vec], // 当前的board_of_game,只有10,1(没有计算的数字),11,0(起手位置) [INFO] [stdout] 1045 | // plan_click: &Vec<(usize, usize)>, // 当前计划点开的格子,递归部分要保证点开后,局面是有解开的可能的 [INFO] [stdout] ... [INFO] [stdout] 1058 | let mut board_clone = board.clone(); // 克隆一个board的备份 [INFO] [stdout] 1059 ~ let mut game_board_clone = board_of_game.to_owned(); // 克隆一个board_of_game的备份 [INFO] [stdout] 1060 | [INFO] [stdout] ... [INFO] [stdout] 1239 | board_clone = board.clone(); [INFO] [stdout] 1240 ~ game_board_clone = board_of_game.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video.rs:643:5 [INFO] [stdout] | [INFO] [stdout] 643 | pub fn get_pluck(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `game_board_clone` [INFO] [stdout] --> src/videos/base_video.rs:685:42 [INFO] [stdout] | [INFO] [stdout] 685 | ... for m in max(1, x) - 1..min(self.height, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 685 - for m in max(1, x) - 1..min(self.height, x + 2) { [INFO] [stdout] 685 + for (m, ) in game_board_clone.iter().enumerate().take(min(self.height, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `game_board_clone` [INFO] [stdout] --> src/videos/base_video.rs:686:46 [INFO] [stdout] | [INFO] [stdout] 686 | ... for n in max(1, y) - 1..min(self.width, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 686 - for n in max(1, y) - 1..min(self.width, y + 2) { [INFO] [stdout] 686 + for (n, ) in game_board_clone.iter().enumerate().take(min(self.width, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/algorithms.rs:1151:23 [INFO] [stdout] | [INFO] [stdout] 1151 | let minenum_min = if xs_cell_num < remain_not_minenum { [INFO] [stdout] | _______________________^ [INFO] [stdout] 1152 | | 0 [INFO] [stdout] 1153 | | } else { [INFO] [stdout] 1154 | | xs_cell_num - remain_not_minenum [INFO] [stdout] 1155 | | }; [INFO] [stdout] | |_____^ help: replace it with: `xs_cell_num.saturating_sub(remain_not_minenum)` [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: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video.rs:845:5 [INFO] [stdout] | [INFO] [stdout] 845 | pub fn step(&mut self, e: &str, pos: (usize, usize)) -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/algorithms.rs:1189:29 [INFO] [stdout] | [INFO] [stdout] 1189 | / ... if a_s[bb][ss][aa] == 1 { [INFO] [stdout] 1190 | | ... if board_clone[x_s[bb][aa].0][x_s[bb][aa].1] == -1 [INFO] [stdout] 1191 | | ... && game_board_clone[x_s[bb][aa].0][x_s[bb][aa].1] != 11 [INFO] [stdout] ... | [INFO] [stdout] 1195 | | ... } [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] 1189 ~ if a_s[bb][ss][aa] == 1 [INFO] [stdout] 1190 ~ && board_clone[x_s[bb][aa].0][x_s[bb][aa].1] == -1 [INFO] [stdout] 1191 | && game_board_clone[x_s[bb][aa].0][x_s[bb][aa].1] != 11 [INFO] [stdout] 1192 | { [INFO] [stdout] 1193 | b_s[bb][ss] += 1; [INFO] [stdout] 1194 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/algorithms.rs:1211:16 [INFO] [stdout] | [INFO] [stdout] 1211 | if not_mine.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!not_mine.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/videos/base_video.rs:923:39 [INFO] [stdout] | [INFO] [stdout] 923 | self.start_time = self.end_time.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.end_time` [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: parameter is only used in recursion [INFO] [stdout] --> src/algorithms.rs:1049:5 [INFO] [stdout] | [INFO] [stdout] 1049 | depth: usize, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/algorithms.rs:1125:13 [INFO] [stdout] | [INFO] [stdout] 1125 | depth + 1, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1232 | 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] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/algorithms.rs:1252:12 [INFO] [stdout] | [INFO] [stdout] 1252 | board: &mut 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] 1252 - board: &mut Vec>, [INFO] [stdout] 1252 + board: &mut [Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `id` is used as a loop counter [INFO] [stdout] --> src/algorithms.rs:1279:5 [INFO] [stdout] | [INFO] [stdout] 1279 | for &(x, y) in area_current_adjust { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (id, &(x, y)) in area_current_adjust.iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video.rs:1022:5 [INFO] [stdout] | [INFO] [stdout] 1022 | pub fn step_game_state(&mut self, e: &str) -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `board1_dim` [INFO] [stdout] --> src/algorithms.rs:1313:18 [INFO] [stdout] | [INFO] [stdout] 1313 | for i in 380..479 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1313 - for i in 380..479 { [INFO] [stdout] 1313 + for in board1_dim.iter_mut().skip(380) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/algorithms.rs:1321:9 [INFO] [stdout] | [INFO] [stdout] 1321 | / for i in 0..pointer { [INFO] [stdout] 1322 | | board1_dim_2[i] = board1_dim[i]; [INFO] [stdout] 1323 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `board1_dim_2[..pointer].copy_from_slice(&board1_dim[..pointer]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] = note: `#[warn(clippy::manual_memcpy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/algorithms.rs:1325:9 [INFO] [stdout] | [INFO] [stdout] 1325 | / for i in pointer..479 { [INFO] [stdout] 1326 | | board1_dim_2[i + 1] = board1_dim[i]; [INFO] [stdout] 1327 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `board1_dim_2[(pointer + 1)..(479 + 1)].copy_from_slice(&board1_dim[pointer..479]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `board1_dim_2` [INFO] [stdout] --> src/algorithms.rs:1329:18 [INFO] [stdout] | [INFO] [stdout] 1329 | for i in 0..480 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 1329 - for i in 0..480 { [INFO] [stdout] 1329 + for (i, ) in board1_dim_2.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `board` [INFO] [stdout] --> src/algorithms.rs:1334:26 [INFO] [stdout] | [INFO] [stdout] 1334 | for j in max(1, x) - 1..min(16, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1334 - for j in max(1, x) - 1..min(16, x + 2) { [INFO] [stdout] 1334 + for in board.iter_mut().take(min(16, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `board` [INFO] [stdout] --> src/algorithms.rs:1335:30 [INFO] [stdout] | [INFO] [stdout] 1335 | for k in max(1, y) - 1..min(30, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1335 - for k in max(1, y) - 1..min(30, y + 2) { [INFO] [stdout] 1335 + for in board.iter_mut().take(min(30, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:1351:12 [INFO] [stdout] | [INFO] [stdout] 1351 | model: &tract_onnx::prelude::SimplePlan< [INFO] [stdout] | ____________^ [INFO] [stdout] 1352 | | tract_onnx::prelude::TypedFact, [INFO] [stdout] 1353 | | std::boxed::Box, [INFO] [stdout] 1354 | | tract_onnx::prelude::Graph< [INFO] [stdout] ... | [INFO] [stdout] 1357 | | >, [INFO] [stdout] 1358 | | >, [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `board` [INFO] [stdout] --> src/algorithms.rs:1442:14 [INFO] [stdout] | [INFO] [stdout] 1442 | for i in 0..image_board.r { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 1442 - for i in 0..image_board.r { [INFO] [stdout] 1442 + for (i, ) in board.iter_mut().enumerate().take(image_board.r) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `board` [INFO] [stdout] --> src/algorithms.rs:1443:18 [INFO] [stdout] | [INFO] [stdout] 1443 | for j in 0..image_board.c { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 1443 - for j in 0..image_board.c { [INFO] [stdout] 1443 + for (j, ) in board.iter_mut().enumerate().take(image_board.c) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video.rs:1296:13 [INFO] [stdout] | [INFO] [stdout] 1296 | return 0; [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] 1296 - return 0; [INFO] [stdout] 1296 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video.rs:1298:13 [INFO] [stdout] | [INFO] [stdout] 1298 | return 1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1298 - return 1; [INFO] [stdout] 1298 + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/videos/base_video.rs:1253:52 [INFO] [stdout] | [INFO] [stdout] 1253 | } else if self.software == "Viennasweeper" { [INFO] [stdout] | ____________________________________________________^ [INFO] [stdout] 1254 | | } else if self.software == "0.97 beta" { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/videos/base_video.rs:1254:48 [INFO] [stdout] | [INFO] [stdout] 1254 | } else if self.software == "0.97 beta" { [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 1255 | | } else if self.software == "元3.1.9" { [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:1504:62 [INFO] [stdout] | [INFO] [stdout] 1504 | let (mut a_mats, mut xs, mut bs, _, _) = refresh_matrixs(&game_board); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `game_board` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/algorithms.rs:1523:6 [INFO] [stdout] | [INFO] [stdout] 1523 | ) -> (Vec<(usize, usize)>, Vec<(usize, usize)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn set_pix_size(&mut self, pix_size: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/algorithms.rs:1543:5 [INFO] [stdout] | [INFO] [stdout] 1543 | /// 2 -> 必要的猜雷。(由于全局或局部不可判而猜雷) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 1543 | /// 2 -> 必要的猜雷。(由于全局或局部不可判而猜雷) [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/algorithms.rs:1544:5 [INFO] [stdout] | [INFO] [stdout] 1544 | /// 3 -> 不必要的猜雷。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 1544 | /// 3 -> 不必要的猜雷。 [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | return self.minesweeper_board.game_board.clone(); [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] 31 - return self.minesweeper_board.game_board.clone(); [INFO] [stdout] 31 + self.minesweeper_board.game_board.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/algorithms.rs:1545:5 [INFO] [stdout] | [INFO] [stdout] 1545 | /// 4 -> 踩到必然的雷。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 1545 | /// 4 -> 踩到必然的雷。 [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/algorithms.rs:1546:5 [INFO] [stdout] | [INFO] [stdout] 1546 | /// 5 -> 没有结果。因为此处已经被点开了。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 1546 | /// 5 -> 没有结果。因为此处已经被点开了。 [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1574:19 [INFO] [stdout] | [INFO] [stdout] 1574 | 12 => return 1, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1574 - 12 => return 1, [INFO] [stdout] 1574 + 12 => 1, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1575:19 [INFO] [stdout] | [INFO] [stdout] 1575 | 11 => return 4, [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] 1575 - 11 => return 4, [INFO] [stdout] 1575 + 11 => 4, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn set_rtime(&mut self, time: U) -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1583:27 [INFO] [stdout] | [INFO] [stdout] 1583 | 12 => return 1, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1583 - 12 => return 1, [INFO] [stdout] 1583 + 12 => 1, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1584:27 [INFO] [stdout] | [INFO] [stdout] 1584 | 11 => return 4, [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] 1584 - 11 => return 4, [INFO] [stdout] 1584 + 11 => 4, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1592:29 [INFO] [stdout] | [INFO] [stdout] 1592 | ... return 1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1592 - return 1; [INFO] [stdout] 1592 + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:81:17 [INFO] [stdout] | [INFO] [stdout] 81 | return (time_ms - self.game_start_ms) as f64 / 1000.0; [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] 81 - return (time_ms - self.game_start_ms) as f64 / 1000.0; [INFO] [stdout] 81 + (time_ms - self.game_start_ms) as f64 / 1000.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1594:29 [INFO] [stdout] | [INFO] [stdout] 1594 | ... return 4; [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] 1594 - return 4; [INFO] [stdout] 1594 + 4 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:85:17 [INFO] [stdout] | [INFO] [stdout] 85 | return now.duration_since(self.video_start_instant).as_millis() as f64 / 1000.0; [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] 85 - return now.duration_since(self.video_start_instant).as_millis() as f64 / 1000.0; [INFO] [stdout] 85 + now.duration_since(self.video_start_instant).as_millis() as f64 / 1000.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1596:29 [INFO] [stdout] | [INFO] [stdout] 1596 | ... return 2; [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] 1596 - return 2; [INFO] [stdout] 1596 + 2 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1598:29 [INFO] [stdout] | [INFO] [stdout] 1598 | ... return 3; [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] 1598 - return 3; [INFO] [stdout] 1598 + 3 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn get_rtime(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/algorithms.rs:1605:9 [INFO] [stdout] | [INFO] [stdout] 1605 | return 2; // 无论何时,包心雷,是合理的猜雷。 [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] 1605 - return 2; // 无论何时,包心雷,是合理的猜雷。 [INFO] [stdout] 1605 + 2// 无论何时,包心雷,是合理的猜雷。 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn get_rtime_ms(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:1559:64 [INFO] [stdout] | [INFO] [stdout] 1559 | let (mut a_matses, mut xses, mut bses) = refresh_matrixses(&board_of_game); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `board_of_game` [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 returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn get_video_start_time(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | pub fn get_video_end_time(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:171:5 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn set_current_event_id(&mut self, id: usize) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/algorithms.rs:1621:62 [INFO] [stdout] | [INFO] [stdout] 1621 | let (mut a_mats, mut xs, mut bs, _, _) = refresh_matrixs(&board_of_game); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `board_of_game` [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 returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn set_use_question(&mut self, use_question: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:188:5 [INFO] [stdout] | [INFO] [stdout] 188 | pub fn set_use_cursor_pos_lim(&mut self, use_cursor_pos_lim: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | pub fn set_use_auto_replay(&mut self, use_auto_replay: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | pub fn set_is_official(&mut self, is_official: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | pub fn set_is_fair(&mut self, is_fair: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn set_mode(&mut self, mode: u16) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:235:5 [INFO] [stdout] | [INFO] [stdout] 235 | pub fn set_software(&mut self, software: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:246:5 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn set_player_identifier(&mut self, player_identifier: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | pub fn set_race_identifier(&mut self, race_identifier: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn set_uniqueness_identifier(&mut self, uniqueness_identifier: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:293:5 [INFO] [stdout] | [INFO] [stdout] 293 | pub fn set_country(&mut self, country: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:305:5 [INFO] [stdout] | [INFO] [stdout] 305 | pub fn set_device_uuid(&mut self, device_uuid: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:315:5 [INFO] [stdout] | [INFO] [stdout] 315 | pub fn set_checksum(&mut self, checksum: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:318:17 [INFO] [stdout] | [INFO] [stdout] 318 | return self.set_checksum_evf_v3(checksum); [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] 318 - return self.set_checksum_evf_v3(checksum); [INFO] [stdout] 318 + self.set_checksum_evf_v3(checksum) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:321:17 [INFO] [stdout] | [INFO] [stdout] 321 | return self.set_checksum_evf_v4(checksum); [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] 321 - return self.set_checksum_evf_v4(checksum); [INFO] [stdout] 321 + self.set_checksum_evf_v4(checksum) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:324:17 [INFO] [stdout] | [INFO] [stdout] 324 | return Err(()); [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] 324 - return Err(()); [INFO] [stdout] 324 + Err(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `self.raw_data.get(0)` [INFO] [stdout] --> src/videos/base_video_metrics.rs:316:15 [INFO] [stdout] | [INFO] [stdout] 316 | match self.raw_data.get(0).unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `self.raw_data.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:342:13 [INFO] [stdout] | [INFO] [stdout] 342 | return Ok(0); [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] 342 - return Ok(0); [INFO] [stdout] 342 + Ok(0) [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/board.rs:54:45 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn set_game_board(&mut self, board: &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] 54 ~ pub fn set_game_board(&mut self, board: &[Vec]) { [INFO] [stdout] 55 ~ let mut game_board_marked = board.to_owned(); [INFO] [stdout] 56 | for i in 0..game_board_marked.len() { [INFO] [stdout] ... [INFO] [stdout] 62 | } [INFO] [stdout] 63 ~ self.game_board = board.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:348:13 [INFO] [stdout] | [INFO] [stdout] 348 | return Ok(0); [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] 348 - return Ok(0); [INFO] [stdout] 348 + Ok(0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/videos/base_video_metrics.rs:345:13 [INFO] [stdout] | [INFO] [stdout] 345 | / for i in 0..32 { [INFO] [stdout] 346 | | self.raw_data[ptr + i] = checksum[i]; [INFO] [stdout] 347 | | } [INFO] [stdout] | |_____________^ help: try replacing the loop by: `self.raw_data[ptr..(32 + ptr)].copy_from_slice(&checksum[..32]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:370:9 [INFO] [stdout] | [INFO] [stdout] 370 | return Ok(0); [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] 370 - return Ok(0); [INFO] [stdout] 370 + Ok(0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:372:5 [INFO] [stdout] | [INFO] [stdout] 372 | pub fn get_raw_data(&self) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/board.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | /// 用Board类估算一亿局高级里有几个8的python代码如下: [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 147 | /// 用Board类估算一亿局高级里有几个8的python代码如下: [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | return self.bbbv.unwrap(); [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] 201 - return self.bbbv.unwrap(); [INFO] [stdout] 201 + self.bbbv.unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:539:5 [INFO] [stdout] | [INFO] [stdout] 539 | pub fn get_etime(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | return self.cell0; [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] 227 - return self.cell0; [INFO] [stdout] 227 + self.cell0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:551:5 [INFO] [stdout] | [INFO] [stdout] 551 | pub fn get_bbbv_s(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | return self.cell1; [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] 234 - return self.cell1; [INFO] [stdout] 234 + self.cell1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:561:5 [INFO] [stdout] | [INFO] [stdout] 561 | pub fn get_bbbv_solved(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:241:9 [INFO] [stdout] | [INFO] [stdout] 241 | return self.cell2; [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] 241 - return self.cell2; [INFO] [stdout] 241 + self.cell2 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | return self.cell3; [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] 248 - return self.cell3; [INFO] [stdout] 248 + self.cell3 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:578:5 [INFO] [stdout] | [INFO] [stdout] 578 | pub fn get_stnb(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | return self.cell4; [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] 255 - return self.cell4; [INFO] [stdout] 255 + self.cell4 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/base_video_metrics.rs:583:9 [INFO] [stdout] | [INFO] [stdout] 583 | let c; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `c` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 583 ~ [INFO] [stdout] 584 ~ let c = match (self.height, self.width, self.mine_num) { [INFO] [stdout] 585 ~ (8, 8, 10) => 47.299, [INFO] [stdout] 586 ~ (16, 16, 40) => 153.73, [INFO] [stdout] 587 ~ (16, 30, 99) => 435.001, [INFO] [stdout] 588 | _ => return Ok(0.0), [INFO] [stdout] 589 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:262:9 [INFO] [stdout] | [INFO] [stdout] 262 | return self.cell5; [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] 262 - return self.cell5; [INFO] [stdout] 262 + self.cell5 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | return self.cell6; [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] 269 - return self.cell6; [INFO] [stdout] 269 + self.cell6 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:276:9 [INFO] [stdout] | [INFO] [stdout] 276 | return self.cell7; [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] 276 - return self.cell7; [INFO] [stdout] 276 + self.cell7 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:601:5 [INFO] [stdout] | [INFO] [stdout] 601 | pub fn get_rqp(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/board.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | return self.cell8; [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] 283 - return self.cell8; [INFO] [stdout] 283 + self.cell8 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:608:5 [INFO] [stdout] | [INFO] [stdout] 608 | pub fn get_qg(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:615:5 [INFO] [stdout] | [INFO] [stdout] 615 | pub fn get_lce(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Evfs` [INFO] [stdout] --> src/evfs.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | / pub fn new() -> Self { [INFO] [stdout] 30 | | Evfs { [INFO] [stdout] 31 | | file_name: String::new(), [INFO] [stdout] 32 | | raw_data: vec![], [INFO] [stdout] ... | [INFO] [stdout] 36 | | } [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] 27 + impl Default for Evfs { [INFO] [stdout] 28 + fn default() -> Self { [INFO] [stdout] 29 + Self::new() [INFO] [stdout] 30 + } [INFO] [stdout] 31 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:629:5 [INFO] [stdout] | [INFO] [stdout] 629 | pub fn get_rce(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:643:5 [INFO] [stdout] | [INFO] [stdout] 643 | pub fn get_dce(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:657:5 [INFO] [stdout] | [INFO] [stdout] 657 | pub fn get_ce(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/evfs.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | / if !cell.evf_video.data.can_analyse { [INFO] [stdout] 73 | | if cell.evf_video.parse().is_err() { [INFO] [stdout] 74 | | return false; [INFO] [stdout] 75 | | } [INFO] [stdout] 76 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 72 ~ if !cell.evf_video.data.can_analyse [INFO] [stdout] 73 ~ && cell.evf_video.parse().is_err() { [INFO] [stdout] 74 | return false; [INFO] [stdout] 75 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:674:5 [INFO] [stdout] | [INFO] [stdout] 674 | pub fn get_ce_s(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:681:5 [INFO] [stdout] | [INFO] [stdout] 681 | pub fn get_corr(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:689:5 [INFO] [stdout] | [INFO] [stdout] 689 | pub fn get_thrp(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:697:5 [INFO] [stdout] | [INFO] [stdout] 697 | pub fn get_ioe(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:706:5 [INFO] [stdout] | [INFO] [stdout] 706 | pub fn get_op_solved(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:718:5 [INFO] [stdout] | [INFO] [stdout] 718 | pub fn get_isl_solved(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/base_video_metrics.rs:731:9 [INFO] [stdout] | [INFO] [stdout] 731 | let m_s; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `m_s` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 731 ~ [INFO] [stdout] 732 ~ let m_s = if self.game_board_state == GameBoardState::Display { [INFO] [stdout] 733 ~ self.video_action_state_recorder[self.current_event_id].mouse_state [INFO] [stdout] 734 | } else { [INFO] [stdout] 735 ~ self.minesweeper_board.mouse_state [INFO] [stdout] 736 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:748:5 [INFO] [stdout] | [INFO] [stdout] 748 | pub fn get_checksum(&self) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:759:5 [INFO] [stdout] | [INFO] [stdout] 759 | pub fn get_x_y(&self) -> Result<(u16, u16), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:779:5 [INFO] [stdout] | [INFO] [stdout] 779 | pub fn get_pix_size(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/evfs.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | / match version { [INFO] [stdout] 193 | | 0 => self.parse_v0()?, [INFO] [stdout] 194 | | _ => {}, [INFO] [stdout] 195 | | } [INFO] [stdout] | |_________^ help: try: `if version == 0 { self.parse_v0()? }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/evfs.rs:215:58 [INFO] [stdout] | [INFO] [stdout] 215 | cell.evf_video.data.analyse_for_features(&controller); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `controller` [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/evfs.rs:289:13 [INFO] [stdout] | [INFO] [stdout] 289 | / return (file_name.to_string() + &(".evfs".to_string())) [INFO] [stdout] 290 | | .as_str() [INFO] [stdout] 291 | | .to_string(); [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] 289 ~ (file_name.to_string() + &(".evfs".to_string())) [INFO] [stdout] 290 + .as_str() [INFO] [stdout] 291 ~ .to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/evfs.rs:281:59 [INFO] [stdout] | [INFO] [stdout] 281 | std::path::Path::new((file_name.to_string() + &(".evfs".to_string())).as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `".evfs"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/evfs.rs:285:42 [INFO] [stdout] | [INFO] [stdout] 285 | (file_name.to_string() + &(".evfs".to_string())).as_str(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `".evfs"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/evfs.rs:289:45 [INFO] [stdout] | [INFO] [stdout] 289 | return (file_name.to_string() + &(".evfs".to_string())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `".evfs"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/evfs.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 327 | let cells = &self.cells[index.start..index.end]; [INFO] [stdout] | ------------------------------------------------ unnecessary `let` binding [INFO] [stdout] 328 | cells [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] 327 ~ [INFO] [stdout] 328 ~ (&self.cells[index.start..index.end]) as _ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/videos/types.rs:142:1 [INFO] [stdout] | [INFO] [stdout] 142 | / impl Default for StaticParams { [INFO] [stdout] 143 | | fn default() -> Self { [INFO] [stdout] 144 | | StaticParams { [INFO] [stdout] 145 | | bbbv: 0, [INFO] [stdout] ... | [INFO] [stdout] 161 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 124 + #[derive(Default)] [INFO] [stdout] 125 | pub struct StaticParams { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `u8` [INFO] [stdout] --> src/videos/base_video_generate_evf.rs:533:32 [INFO] [stdout] | [INFO] [stdout] 533 | self.raw_data.push((t_ms).try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [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: casting integer literal to `u32` is unnecessary [INFO] [stdout] --> src/videos/base_video_generate_evf.rs:549:42 [INFO] [stdout] | [INFO] [stdout] 549 | let pause_time = min(65535 as u32, delta_t) as u16; [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `65535_u32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `buffer` [INFO] [stdout] --> src/videos/avf_video.rs:302:18 [INFO] [stdout] | [INFO] [stdout] 302 | for i in 3..8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 302 - for i in 3..8 { [INFO] [stdout] 302 + for in buffer.iter_mut().skip(3) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `buffer` [INFO] [stdout] --> src/videos/avf_video.rs:333:22 [INFO] [stdout] | [INFO] [stdout] 333 | for i in 0..8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 333 - for i in 0..8 { [INFO] [stdout] 333 + for in &mut buffer { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/rmv_video.rs:436:9 [INFO] [stdout] | [INFO] [stdout] 436 | return Ok(()); [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] 436 - return Ok(()); [INFO] [stdout] 436 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/byte_reader.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | return Err(ErrReadVideoReason::InvalidParams); [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] 112 - return Err(ErrReadVideoReason::InvalidParams); [INFO] [stdout] 112 + Err(ErrReadVideoReason::InvalidParams) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/videos/byte_reader.rs:121:10 [INFO] [stdout] | [INFO] [stdout] 121 | (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `year.is_multiple_of(4)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/videos/byte_reader.rs:121:27 [INFO] [stdout] | [INFO] [stdout] 121 | (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `!year.is_multiple_of(100)` [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/videos/byte_reader.rs:121:47 [INFO] [stdout] | [INFO] [stdout] 121 | (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace with: `year.is_multiple_of(400)` [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: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/videos/byte_reader.rs:141:22 [INFO] [stdout] | [INFO] [stdout] 141 | total_days + day as u64 - 1 [INFO] [stdout] | ^^^^^^^^^^ help: try: `day` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `u32` [INFO] [stdout] --> src/videos/rmv_video.rs:213:39 [INFO] [stdout] | [INFO] [stdout] 213 | let timestamp_boardgen: u32 = self.data.get_u32()?.into(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.data.get_u32()?` [INFO] [stdout] | [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] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/videos/minesweeper_board.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | /// 应用场景:强化学习训练AI、游戏复盘计算指标。不能处理高亮(18)、算法确定是雷(12)等标记。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 13 | /// 应用场景:强化学习训练AI、游戏复盘计算指标。不能处理高亮(18)、算法确定是雷(12)等标记。 [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/videos/rmv_video.rs:247:24 [INFO] [stdout] | [INFO] [stdout] 247 | self.data.nf = if self.data.get_u8()? == 1 { [INFO] [stdout] | ________________________^ [INFO] [stdout] 248 | | true [INFO] [stdout] 249 | | } else { [INFO] [stdout] 250 | | false [INFO] [stdout] 251 | | }; [INFO] [stdout] | |_________^ help: you can reduce it to: `self.data.get_u8()? == 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/videos/rmv_video.rs:265:24 [INFO] [stdout] | [INFO] [stdout] 265 | utf8 = if self.data.get_u8()? == 1 { [INFO] [stdout] | ________________________^ [INFO] [stdout] 266 | | true [INFO] [stdout] 267 | | } else { [INFO] [stdout] 268 | | false [INFO] [stdout] 269 | | }; [INFO] [stdout] | |_________________^ help: you can reduce it to: `self.data.get_u8()? == 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/minesweeper_board.rs:244:13 [INFO] [stdout] | [INFO] [stdout] 244 | return Ok(0); [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] 244 - return Ok(0); [INFO] [stdout] 244 + Ok(0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/videos/rmv_video.rs:404:34 [INFO] [stdout] | [INFO] [stdout] 404 | } else if c <= 14 || (c >= 18 && c <= 27) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use: `(18..=27).contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/videos/minesweeper_board.rs:363:17 [INFO] [stdout] | [INFO] [stdout] 363 | / if self.game_board[i][j] == 10 && self.board[i][j] == 0 && !game_board_mark[i][j] { [INFO] [stdout] 364 | | if self.cell_is_op_completed(i, j, &mut game_board_mark) { [INFO] [stdout] 365 | | op_num += 1; [INFO] [stdout] 366 | | } [INFO] [stdout] 367 | | } [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] 363 ~ if self.game_board[i][j] == 10 && self.board[i][j] == 0 && !game_board_mark[i][j] [INFO] [stdout] 364 ~ && self.cell_is_op_completed(i, j, &mut game_board_mark) { [INFO] [stdout] 365 | op_num += 1; [INFO] [stdout] 366 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/evf_video.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | return Ok(()); [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] 220 - return Ok(()); [INFO] [stdout] 220 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/videos/minesweeper_board.rs:375:73 [INFO] [stdout] | [INFO] [stdout] 375 | fn cell_is_op_completed(&self, x: usize, y: usize, game_board_mark: &mut Vec>) -> 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] 375 - fn cell_is_op_completed(&self, x: usize, y: usize, game_board_mark: &mut Vec>) -> bool [INFO] [stdout] 375 + fn cell_is_op_completed(&self, x: usize, y: usize, game_board_mark: &mut [Vec]) -> bool [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `game_board_mark` [INFO] [stdout] --> src/videos/minesweeper_board.rs:391:26 [INFO] [stdout] | [INFO] [stdout] 391 | for m in max(1, i) - 1..min(self.row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 391 - for m in max(1, i) - 1..min(self.row, i + 2) { [INFO] [stdout] 391 + for (m, ) in game_board_mark.iter().enumerate().take(min(self.row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `game_board_mark` [INFO] [stdout] --> src/videos/minesweeper_board.rs:392:30 [INFO] [stdout] | [INFO] [stdout] 392 | for n in max(1, j) - 1..min(self.column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 392 - for n in max(1, j) - 1..min(self.column, j + 2) { [INFO] [stdout] 392 + for (n, ) in game_board_mark.iter().enumerate().take(min(self.column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/minesweeper_board.rs:413:5 [INFO] [stdout] | [INFO] [stdout] 413 | pub fn step(&mut self, e: &str, pos: (usize, usize)) -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/videos/minesweeper_board.rs:532:25 [INFO] [stdout] | [INFO] [stdout] 532 | "lr" => match self.mouse_state { [INFO] [stdout] | _________________________^ [INFO] [stdout] 533 | | MouseState::DownUp => { [INFO] [stdout] 534 | | if pos.0 == self.row && pos.1 == self.column { [INFO] [stdout] 535 | | self.mouse_state = MouseState::UpUp; [INFO] [stdout] ... | [INFO] [stdout] 558 | | _ => {} [INFO] [stdout] 559 | | }, [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 532 ~ "lr" => if self.mouse_state == MouseState::DownUp { [INFO] [stdout] 533 + if pos.0 == self.row && pos.1 == self.column { [INFO] [stdout] 534 + self.mouse_state = MouseState::UpUp; [INFO] [stdout] 535 + if self.pre_flag_num == 0 { [INFO] [stdout] 536 + self.game_board_state = GameBoardState::Ready; [INFO] [stdout] 537 + self.clear_click_num(); [INFO] [stdout] 538 + } else { [INFO] [stdout] 539 ~ // 预标雷阶段,在局面外左键弹起 [INFO] [stdout] 540 + self.left += 1; [INFO] [stdout] 541 + } [INFO] [stdout] 542 + return Ok(0); [INFO] [stdout] 543 + } [INFO] [stdout] 544 + if self.game_board[pos.0][pos.1] == 10 { [INFO] [stdout] 545 ~ // 预标雷阶段,在10上左键弹起 [INFO] [stdout] 546 + self.game_board_state = GameBoardState::Playing; [INFO] [stdout] 547 + self.mouse_state = MouseState::UpUp; [INFO] [stdout] 548 + return self.left_click(pos.0, pos.1); [INFO] [stdout] 549 + } else { [INFO] [stdout] 550 ~ // 预标雷阶段,在旗上左键弹起 [INFO] [stdout] 551 + self.left += 1; [INFO] [stdout] 552 + return Ok(0); [INFO] [stdout] 553 ~ // 往下走,左键数可能后面还需要+1 [INFO] [stdout] 554 + } [INFO] [stdout] 555 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:176:13 [INFO] [stdout] | [INFO] [stdout] 176 | let mouse; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 176 ~ [INFO] [stdout] 177 ~ let mouse = match byte { [INFO] [stdout] 178 | 0 => { [INFO] [stdout] ... [INFO] [stdout] 181 | } [INFO] [stdout] 182 ~ 1 => "mv", [INFO] [stdout] 183 ~ 2 => "lc", [INFO] [stdout] 184 ~ 3 => "lr", [INFO] [stdout] 185 ~ 4 => "rc", [INFO] [stdout] 186 ~ 5 => "rr", [INFO] [stdout] 187 ~ 6 => "mc", [INFO] [stdout] 188 ~ 7 => "mr", [INFO] [stdout] 189 ~ 8 => "pf", [INFO] [stdout] 190 ~ 9 => "cc", [INFO] [stdout] 191 | 255 => { [INFO] [stdout] ... [INFO] [stdout] 194 | } [INFO] [stdout] 195 ~ _ => "ub", // 不可能 [INFO] [stdout] 196 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/evf_video.rs:343:9 [INFO] [stdout] | [INFO] [stdout] 343 | return Ok(()); [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] 343 - return Ok(()); [INFO] [stdout] 343 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/videos/minesweeper_board.rs:594:25 [INFO] [stdout] | [INFO] [stdout] 594 | / if pos.0 < self.row && pos.1 < self.column { [INFO] [stdout] 595 | | if self.pre_flag_num == 0 { [INFO] [stdout] 596 | | self.game_board_state = GameBoardState::Ready; [INFO] [stdout] 597 | | } [INFO] [stdout] 598 | | } [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] 594 ~ if pos.0 < self.row && pos.1 < self.column [INFO] [stdout] 595 ~ && self.pre_flag_num == 0 { [INFO] [stdout] 596 | self.game_board_state = GameBoardState::Ready; [INFO] [stdout] 597 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/videos/minesweeper_board.rs:606:29 [INFO] [stdout] | [INFO] [stdout] 606 | / ... if pos.0 < self.row && pos.1 < self.column { [INFO] [stdout] 607 | | ... if self.pre_flag_num == 0 { [INFO] [stdout] 608 | | ... self.game_board_state = GameBoardState::Ready; [INFO] [stdout] 609 | | ... } [INFO] [stdout] 610 | | ... } [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] 606 ~ if pos.0 < self.row && pos.1 < self.column [INFO] [stdout] 607 ~ && self.pre_flag_num == 0 { [INFO] [stdout] 608 | self.game_board_state = GameBoardState::Ready; [INFO] [stdout] 609 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/minesweeper_board.rs:852:5 [INFO] [stdout] | [INFO] [stdout] 852 | pub fn step_flow(&mut self, operation: &Vec<(String, (usize, usize))>) -> Result<(), ()> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:299:13 [INFO] [stdout] | [INFO] [stdout] 299 | let mouse; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 299 ~ [INFO] [stdout] 300 ~ let mouse = match byte { [INFO] [stdout] 301 | 0 => { [INFO] [stdout] ... [INFO] [stdout] 304 | } [INFO] [stdout] 305 ~ 1 => "mv", [INFO] [stdout] 306 ~ 2 => "lc", [INFO] [stdout] 307 ~ 3 => "lr", [INFO] [stdout] 308 ~ 4 => "rc", [INFO] [stdout] 309 ~ 5 => "rr", [INFO] [stdout] 310 ~ 6 => "mc", [INFO] [stdout] 311 ~ 7 => "mr", [INFO] [stdout] 312 ~ 8 => "pf", [INFO] [stdout] 313 ~ 9 => "cc", [INFO] [stdout] 314 | 255 => { [INFO] [stdout] ... [INFO] [stdout] 317 | } [INFO] [stdout] 318 ~ _ => "ub", // 不可能 [INFO] [stdout] 319 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/minesweeper_board.rs:863:5 [INFO] [stdout] | [INFO] [stdout] 863 | pub fn step_game_state(&mut self, e: &str) -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/videos/minesweeper_board.rs:882:13 [INFO] [stdout] | [INFO] [stdout] 882 | / if self.game_board[self.pointer_x][j] < 10 { [INFO] [stdout] 883 | | if self.game_board[self.pointer_x][j] != self.board[self.pointer_x][j] { [INFO] [stdout] 884 | | return false; // 安全性相关(发生作弊) [INFO] [stdout] 885 | | } [INFO] [stdout] 886 | | } [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] 882 ~ if self.game_board[self.pointer_x][j] < 10 [INFO] [stdout] 883 ~ && self.game_board[self.pointer_x][j] != self.board[self.pointer_x][j] { [INFO] [stdout] 884 | return false; // 安全性相关(发生作弊) [INFO] [stdout] 885 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/videos/minesweeper_board.rs:894:17 [INFO] [stdout] | [INFO] [stdout] 894 | / if self.game_board[i][j] < 10 { [INFO] [stdout] 895 | | if self.game_board[i][j] != self.board[i][j] { [INFO] [stdout] 896 | | return false; // 安全性相关(发生作弊) [INFO] [stdout] 897 | | } [INFO] [stdout] 898 | | } [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] 894 ~ if self.game_board[i][j] < 10 [INFO] [stdout] 895 ~ && self.game_board[i][j] != self.board[i][j] { [INFO] [stdout] 896 | return false; // 安全性相关(发生作弊) [INFO] [stdout] 897 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/evf_video.rs:473:9 [INFO] [stdout] | [INFO] [stdout] 473 | return Ok(()); [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] 473 - return Ok(()); [INFO] [stdout] 473 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/videos/analyse_methods.rs:38:36 [INFO] [stdout] | [INFO] [stdout] 38 | vas.comments = format!( [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 39 | | "{}{}", [INFO] [stdout] 40 | | vas.comments, [INFO] [stdout] 41 | | format!("error: 危险的猜雷(猜对概率{:.3});", 1.0 - p) [INFO] [stdout] 42 | | ); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/videos/analyse_methods.rs:74:36 [INFO] [stdout] | [INFO] [stdout] 74 | vas.comments = format!( [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 75 | | "{}{}", [INFO] [stdout] 76 | | vas.comments, [INFO] [stdout] 77 | | format!("feature: 高难度的判雷(左键);") [INFO] [stdout] 78 | | ); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/videos/analyse_methods.rs:80:20 [INFO] [stdout] | [INFO] [stdout] 80 | } else if vas.useful_level == 1 && mouse_event.mouse == "rc" { [INFO] [stdout] | ____________________^ [INFO] [stdout] 81 | | if !vas [INFO] [stdout] 82 | | .prior_game_board [INFO] [stdout] 83 | | .as_ref() [INFO] [stdout] ... | [INFO] [stdout] 102 | | } [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] 80 ~ } else if vas.useful_level == 1 && mouse_event.mouse == "rc" [INFO] [stdout] 81 ~ && !vas [INFO] [stdout] 82 | .prior_game_board [INFO] [stdout] ... [INFO] [stdout] 100 | ); [INFO] [stdout] 101 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/videos/analyse_methods.rs:96:36 [INFO] [stdout] | [INFO] [stdout] 96 | vas.comments = format!( [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 97 | | "{}{}", [INFO] [stdout] 98 | | vas.comments, [INFO] [stdout] 99 | | format!("feature: 高难度的判雷(标雷);") [INFO] [stdout] 100 | | ); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:426:13 [INFO] [stdout] | [INFO] [stdout] 426 | let mouse; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 426 ~ [INFO] [stdout] 427 ~ let mouse = match byte { [INFO] [stdout] 428 | 0 => { [INFO] [stdout] ... [INFO] [stdout] 431 | } [INFO] [stdout] 432 ~ 1 => "mv", [INFO] [stdout] 433 ~ 2 => "lc", [INFO] [stdout] 434 ~ 3 => "lr", [INFO] [stdout] 435 ~ 4 => "rc", [INFO] [stdout] 436 ~ 5 => "rr", [INFO] [stdout] 437 ~ 6 => "mc", [INFO] [stdout] 438 ~ 7 => "mr", [INFO] [stdout] 439 ~ 8 => "pf", [INFO] [stdout] 440 ~ 9 => "cc", [INFO] [stdout] 441 ~ 10 => "l", [INFO] [stdout] 442 ~ 11 => "r", [INFO] [stdout] 443 ~ 12 => "m", [INFO] [stdout] 444 | 255 => { [INFO] [stdout] ... [INFO] [stdout] 447 | } [INFO] [stdout] 448 ~ _ => "ub", // 不可能 [INFO] [stdout] 449 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/videos/analyse_methods.rs:143:48 [INFO] [stdout] | [INFO] [stdout] 143 | ... vas.comments = format!( [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 144 | | ... "{}{}", [INFO] [stdout] 145 | | ... vas.comments, [INFO] [stdout] 146 | | ... format!("warning: 可以判雷时选择猜雷;") [INFO] [stdout] 147 | | ... ); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/evf_video.rs:661:9 [INFO] [stdout] | [INFO] [stdout] 661 | return Ok(()); [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] 661 - return Ok(()); [INFO] [stdout] 661 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/videos/analyse_methods.rs:197:24 [INFO] [stdout] | [INFO] [stdout] 197 | } else if k < 1.01 { [INFO] [stdout] | ________________________^ [INFO] [stdout] 198 | | if k > 5.0 { [INFO] [stdout] 199 | | comments.push((click_last_id, "suspect: 笔直的鼠标轨迹;".to_owned())); [INFO] [stdout] 200 | | } [INFO] [stdout] 201 | | } [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] 197 ~ } else if k < 1.01 [INFO] [stdout] 198 ~ && k > 5.0 { [INFO] [stdout] 199 | comments.push((click_last_id, "suspect: 笔直的鼠标轨迹;".to_owned())); [INFO] [stdout] 200 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: taken reference of right operand [INFO] [stdout] --> src/videos/analyse_methods.rs:282:65 [INFO] [stdout] | [INFO] [stdout] 282 | video.video_action_state_recorder[comment.0].comments = video.video_action_state_recorder [INFO] [stdout] | _________________________________________________________________^ [INFO] [stdout] 283 | | [comment.0] [INFO] [stdout] 284 | | .comments [INFO] [stdout] 285 | | .clone() [INFO] [stdout] 286 | | + &comment.1; [INFO] [stdout] | |_______________---------^ [INFO] [stdout] | | [INFO] [stdout] | help: use the right value directly: `comment.1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` 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/videos/analyse_methods.rs:286:15 [INFO] [stdout] | [INFO] [stdout] 286 | + &comment.1; [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `comment.1` [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 loop variable `m` is used to index `game_board_clone` [INFO] [stdout] --> src/videos/analyse_methods.rs:330:26 [INFO] [stdout] | [INFO] [stdout] 330 | for m in max(1, r) - 1..min(video.height, r + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 330 - for m in max(1, r) - 1..min(video.height, r + 2) { [INFO] [stdout] 330 + for (m, ) in game_board_clone.iter().enumerate().take(min(video.height, r + 2)).skip(max(1, r) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `game_board_clone` [INFO] [stdout] --> src/videos/analyse_methods.rs:331:30 [INFO] [stdout] | [INFO] [stdout] 331 | for n in max(1, c) - 1..min(video.width, c + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 331 - for n in max(1, c) - 1..min(video.width, c + 2) { [INFO] [stdout] 331 + for (n, ) in game_board_clone.iter().enumerate().take(min(video.width, c + 2)).skip(max(1, c) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:542:9 [INFO] [stdout] | [INFO] [stdout] 542 | let mouse; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 542 ~ [INFO] [stdout] 543 ~ let mouse = match byte { [INFO] [stdout] 544 ~ 1 => "mv", [INFO] [stdout] 545 ~ 2 => "lc", [INFO] [stdout] 546 ~ 4 => "rc", [INFO] [stdout] 547 ~ 8 => "pf", [INFO] [stdout] 548 | _ => panic!(), // impossible [INFO] [stdout] 549 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:583:21 [INFO] [stdout] | [INFO] [stdout] 583 | let mouse; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 583 ~ [INFO] [stdout] 584 ~ let mouse = match byte_mouse { [INFO] [stdout] 585 ~ 1 => "mv", [INFO] [stdout] 586 ~ 2 => "lc", [INFO] [stdout] 587 ~ 3 => "lr", [INFO] [stdout] 588 ~ 4 => "rc", [INFO] [stdout] 589 ~ 5 => "rr", [INFO] [stdout] 590 ~ 6 => "mc", [INFO] [stdout] 591 ~ 7 => "mr", [INFO] [stdout] 592 ~ 8 => "pf", [INFO] [stdout] 593 ~ 9 => "cc", [INFO] [stdout] 594 ~ 10 => "l", [INFO] [stdout] 595 ~ 11 => "r", [INFO] [stdout] 596 ~ 12 => "m", [INFO] [stdout] 597 | _ => panic!(), [INFO] [stdout] 598 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/evf_video.rs:623:21 [INFO] [stdout] | [INFO] [stdout] 623 | let game_state; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `game_state` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 623 ~ [INFO] [stdout] 624 ~ let game_state = match byte_game_state { [INFO] [stdout] 625 ~ 81 => "replay", [INFO] [stdout] 626 ~ 82 => "win", [INFO] [stdout] 627 ~ 83 => "fail", [INFO] [stdout] 628 ~ 99 => "error", [INFO] [stdout] 629 | _ => panic!(), [INFO] [stdout] 630 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/videos/analyse_methods.rs:499:13 [INFO] [stdout] | [INFO] [stdout] 499 | / match state { [INFO] [stdout] 500 | | SuperFLState::Finish => { [INFO] [stdout] 501 | | comments.push(( [INFO] [stdout] 502 | | anchor, [INFO] [stdout] ... | [INFO] [stdout] 513 | | _ => {} [INFO] [stdout] 514 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 499 ~ if state == SuperFLState::Finish { [INFO] [stdout] 500 + comments.push(( [INFO] [stdout] 501 + anchor, [INFO] [stdout] 502 ~ format!("feature: 教科书式的FL局部(步数{});", counter), [INFO] [stdout] 503 + )); [INFO] [stdout] 504 + [INFO] [stdout] 505 + // video.video_action_state_recorder[anchor].comments = format!( [INFO] [stdout] 506 + // "{}{}", [INFO] [stdout] 507 + // video.video_action_state_recorder[anchor].comments, [INFO] [stdout] 508 ~ // format!("feature: 教科书式的FL局部(步数{});", counter) [INFO] [stdout] 509 + // ); [INFO] [stdout] 510 + state = SuperFLState::NotStart; [INFO] [stdout] 511 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/big_number.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | new_a = new_a / 10.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `new_a /= 10.0` [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: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/big_number.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | let mut new_a = self.a * other as f64; [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `other` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/videos/mvf_video.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 94 | / fn parse_event( [INFO] [stdout] 95 | | &self, [INFO] [stdout] 96 | | lb: u16, [INFO] [stdout] 97 | | rb: u16, [INFO] [stdout] ... | [INFO] [stdout] 105 | | prev_y: u16, [INFO] [stdout] 106 | | ) -> Vec { [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/mvf_video.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | return evs; [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] 129 - return evs; [INFO] [stdout] 129 + evs [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/mvf_video.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | return 1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 134 - return 1; [INFO] [stdout] 134 + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/mvf_video.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | return 0; [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] 136 - return 0; [INFO] [stdout] 136 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/big_number.rs:161:1 [INFO] [stdout] | [INFO] [stdout] 161 | impl Into for BigNumber { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 161 ~ impl From for f64 { [INFO] [stdout] 162 ~ fn from(val: BigNumber) -> Self { [INFO] [stdout] 163 ~ val.a * 10.0_f64.powi(val.b) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `s` [INFO] [stdout] --> src/videos/mvf_video.rs:204:18 [INFO] [stdout] | [INFO] [stdout] 204 | for i in 0..8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 204 - for i in 0..8 { [INFO] [stdout] 204 + for (i, ) in s.iter_mut().enumerate().take(8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `x_bw` [INFO] [stdout] --> src/obr.rs:79:18 [INFO] [stdout] | [INFO] [stdout] 79 | for i in 0..row { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 79 - for i in 0..row { [INFO] [stdout] 79 + for (i, ) in x_bw.iter_mut().enumerate().take(row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `x_bw` [INFO] [stdout] --> src/obr.rs:80:22 [INFO] [stdout] | [INFO] [stdout] 80 | for j in 0..column { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 80 - for j in 0..column { [INFO] [stdout] 80 + for (j, ) in x_bw.iter_mut().enumerate().take(column) { [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/obr.rs:105:33 [INFO] [stdout] | [INFO] [stdout] 105 | fn get_r12c12(&self, x_bw2: &Vec>) -> [usize; 8] { [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] 105 - fn get_r12c12(&self, x_bw2: &Vec>) -> [usize; 8] { [INFO] [stdout] 105 + fn get_r12c12(&self, x_bw2: &[Vec]) -> [usize; 8] { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `s` [INFO] [stdout] --> src/videos/mvf_video.rs:236:22 [INFO] [stdout] | [INFO] [stdout] 236 | for j in 0..40 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 236 - for j in 0..40 { [INFO] [stdout] 236 + for (j, ) in s.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `x_bw2` [INFO] [stdout] --> src/obr.rs:136:30 [INFO] [stdout] | [INFO] [stdout] 136 | for n in r_p_1..r_p_2 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 136 - for n in r_p_1..r_p_2 { [INFO] [stdout] 136 + for (n, ) in x_bw2.iter().enumerate().take(r_p_2).skip(r_p_1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `ii` is only used to index `e` [INFO] [stdout] --> src/videos/mvf_video.rs:249:19 [INFO] [stdout] | [INFO] [stdout] 249 | for ii in 0..5 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 249 - for ii in 0..5 { [INFO] [stdout] 249 + for in &mut e { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `x_bw2` [INFO] [stdout] --> src/obr.rs:183:30 [INFO] [stdout] | [INFO] [stdout] 183 | for n in r_p_1..r_p_2 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 183 - for n in r_p_1..r_p_2 { [INFO] [stdout] 183 + for (n, ) in x_bw2.iter().enumerate().take(r_p_2).skip(r_p_1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `x_bw2` [INFO] [stdout] --> src/obr.rs:231:30 [INFO] [stdout] | [INFO] [stdout] 231 | for n in c_p_1..c_p_2 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 231 - for n in c_p_1..c_p_2 { [INFO] [stdout] 231 + for (n, ) in x_bw2.iter().enumerate().take(c_p_2).skip(c_p_1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `ii` is only used to index `e` [INFO] [stdout] --> src/videos/mvf_video.rs:292:23 [INFO] [stdout] | [INFO] [stdout] 292 | for ii in 0..5 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 292 - for ii in 0..5 { [INFO] [stdout] 292 + for in &mut e { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/mvf_video.rs:303:13 [INFO] [stdout] | [INFO] [stdout] 303 | let mouse_s; [INFO] [stdout] | ^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 317 | mouse_s = self.parse_event(lb, rb, mb, x, y, prev_lb, prev_rb, prev_mb, prev_x, prev_y); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `mouse_s` here [INFO] [stdout] | [INFO] [stdout] 303 ~ [INFO] [stdout] 304 | [INFO] [stdout] ... [INFO] [stdout] 316 | [INFO] [stdout] 317 ~ let mouse_s = self.parse_event(lb, rb, mb, x, y, prev_lb, prev_rb, prev_mb, prev_x, prev_y); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `x_bw2` [INFO] [stdout] --> src/obr.rs:278:30 [INFO] [stdout] | [INFO] [stdout] 278 | for n in c_p_1..c_p_2 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 278 - for n in c_p_1..c_p_2 { [INFO] [stdout] 278 + for (n, ) in x_bw2.iter().enumerate().take(c_p_2).skip(c_p_1) { [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/obr.rs:307:36 [INFO] [stdout] | [INFO] [stdout] 307 | fn binarize_gradient(&self, x: &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] 307 - fn binarize_gradient(&self, x: &Vec>) -> Vec> { [INFO] [stdout] 307 + fn binarize_gradient(&self, x: &[Vec]) -> Vec> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `x` [INFO] [stdout] --> src/obr.rs:312:18 [INFO] [stdout] | [INFO] [stdout] 312 | for i in (row / 4)..(row * 3 / 4) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 312 - for i in (row / 4)..(row * 3 / 4) { [INFO] [stdout] 312 + for in x.iter().take((row * 3 / 4)).skip((row / 4)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `x` [INFO] [stdout] --> src/obr.rs:313:22 [INFO] [stdout] | [INFO] [stdout] 313 | for j in (column / 4)..(column * 3 / 4) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 313 - for j in (column / 4)..(column * 3 / 4) { [INFO] [stdout] 313 + for in x.iter().take((column * 3 / 4)).skip((column / 4)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/obr.rs:319:9 [INFO] [stdout] | [INFO] [stdout] 319 | / if th1 > 1.0 { [INFO] [stdout] 320 | | th1 = 1.0; [INFO] [stdout] 321 | | } else if th1 < 0.01 { [INFO] [stdout] 322 | | th1 = 0.01; [INFO] [stdout] 323 | | } [INFO] [stdout] | |_________^ help: replace with clamp: `th1 = th1.clamp(0.01, 1.0);` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/mvf_video.rs:361:17 [INFO] [stdout] | [INFO] [stdout] 361 | return self.read_097(); [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] 361 - return self.read_097(); [INFO] [stdout] 361 + self.read_097() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is used to index `x_bw` [INFO] [stdout] --> src/obr.rs:345:18 [INFO] [stdout] | [INFO] [stdout] 345 | for k in 0..3 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 345 - for k in 0..3 { [INFO] [stdout] 345 + for (k, ) in x_bw.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `x_bw` [INFO] [stdout] --> src/obr.rs:346:22 [INFO] [stdout] | [INFO] [stdout] 346 | for i in 0..row { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 346 - for i in 0..row { [INFO] [stdout] 346 + for (i, ) in x_bw.iter_mut().enumerate().take(row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `x_bw` [INFO] [stdout] --> src/obr.rs:347:26 [INFO] [stdout] | [INFO] [stdout] 347 | for j in 0..column { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 347 - for j in 0..column { [INFO] [stdout] 347 + for (j, ) in x_bw.iter_mut().enumerate().take(column) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/videos/base_video.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | /// 其中`9906`这四位数字,分别表示毫秒整除100、毫秒整除10(一或二位数)、毫秒对10取余。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 190 | /// 其中`9906`这四位数字,分别表示毫秒整除100、毫秒整除10(一或二位数)、毫秒对10取余。 [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/videos/base_video.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | /// 所以`9906`就是906毫秒;再例如`083`就是83毫秒。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 191 | /// 所以`9906`就是906毫秒;再例如`083`就是83毫秒。 [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/obr.rs:367:15 [INFO] [stdout] | [INFO] [stdout] 367 | data: &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] 367 - data: &Vec>, [INFO] [stdout] 367 + data: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `data` [INFO] [stdout] --> src/obr.rs:376:18 [INFO] [stdout] | [INFO] [stdout] 376 | for i in r_1 + 1..r_2 + 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 376 - for i in r_1 + 1..r_2 + 1 { [INFO] [stdout] 376 + for in data.iter().take(r_2 + 1).skip(r_1 + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/obr.rs:432:9 [INFO] [stdout] | [INFO] [stdout] 432 | return dis_; [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] 432 - return dis_; [INFO] [stdout] 432 + dis_ [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/obr.rs:402:15 [INFO] [stdout] | [INFO] [stdout] 402 | data: &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] 402 - data: &Vec>, [INFO] [stdout] 402 + data: &[Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `data` [INFO] [stdout] --> src/obr.rs:411:18 [INFO] [stdout] | [INFO] [stdout] 411 | for i in c_1 + 1..c_2 + 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 411 - for i in c_1 + 1..c_2 + 1 { [INFO] [stdout] 411 + for in data.iter().take(c_2 + 1).skip(c_1 + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `hough` [INFO] [stdout] --> src/obr.rs:537:18 [INFO] [stdout] | [INFO] [stdout] 537 | for i in 0..max_x + 1 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 537 - for i in 0..max_x + 1 { [INFO] [stdout] 537 + for (i, ) in hough.iter().enumerate().take(max_x + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `hough` [INFO] [stdout] --> src/obr.rs:538:22 [INFO] [stdout] | [INFO] [stdout] 538 | for j in min_size * 4..max_size * 4 + 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 538 - for j in min_size * 4..max_size * 4 + 1 { [INFO] [stdout] 538 + for (j, ) in hough.iter().enumerate().take(max_size * 4 + 1).skip(min_size * 4) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: attempt to mutate range bound within loop [INFO] [stdout] --> src/obr.rs:616:13 [INFO] [stdout] | [INFO] [stdout] 616 | c_2 = c; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: the range of the loop is unchanged [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_range_bound [INFO] [stdout] = note: `#[warn(clippy::mut_range_bound)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `x_bw3` [INFO] [stdout] --> src/obr.rs:605:22 [INFO] [stdout] | [INFO] [stdout] 605 | for r in r_p_1..r_p_2 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 605 - for r in r_p_1..r_p_2 { [INFO] [stdout] 605 + for in x_bw3.iter().take(r_p_2).skip(r_p_1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is only used to index `x_bw3` [INFO] [stdout] --> src/obr.rs:621:22 [INFO] [stdout] | [INFO] [stdout] 621 | for c in c_p_1..c_p_2 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 621 - for c in c_p_1..c_p_2 { [INFO] [stdout] 621 + for in x_bw3.iter().take(c_p_2).skip(c_p_1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: attempt to mutate range bound within loop [INFO] [stdout] --> src/obr.rs:648:13 [INFO] [stdout] | [INFO] [stdout] 648 | r_2 = r; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: the range of the loop is unchanged [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_range_bound [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is only used to index `x_bw3` [INFO] [stdout] --> src/obr.rs:637:22 [INFO] [stdout] | [INFO] [stdout] 637 | for c in c_p_1..c_p_2 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 637 - for c in c_p_1..c_p_2 { [INFO] [stdout] 637 + for in x_bw3.iter().take(c_p_2).skip(c_p_1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `MouseState` which implements the `Copy` trait [INFO] [stdout] --> src/videos/base_video.rs:420:35 [INFO] [stdout] | [INFO] [stdout] 420 | svi.mouse_state = b.mouse_state.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `b.mouse_state` [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: you don't need to add `&` to all patterns [INFO] [stdout] --> src/videos/base_video.rs:553:13 [INFO] [stdout] | [INFO] [stdout] 553 | / match o { [INFO] [stdout] 554 | | &"high_risk_guess" => analyse_high_risk_guess(self), [INFO] [stdout] 555 | | &"jump_judge" => analyse_jump_judge(self), [INFO] [stdout] 556 | | &"needless_guess" => analyse_needless_guess(self), [INFO] [stdout] ... | [INFO] [stdout] 561 | | _ => panic!("not supported analysis feature!"), [INFO] [stdout] 562 | | }; [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] 553 ~ match *o { [INFO] [stdout] 554 ~ "high_risk_guess" => analyse_high_risk_guess(self), [INFO] [stdout] 555 ~ "jump_judge" => analyse_jump_judge(self), [INFO] [stdout] 556 ~ "needless_guess" => analyse_needless_guess(self), [INFO] [stdout] 557 ~ "mouse_trace" => analyse_mouse_trace(self), [INFO] [stdout] 558 ~ "vision_transfer" => analyse_vision_transfer(self), [INFO] [stdout] 559 ~ "pluck" => analyse_pluck(self), [INFO] [stdout] 560 ~ "super_fl_local" => analyse_super_fl_local(self), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video.rs:566:5 [INFO] [stdout] | [INFO] [stdout] 566 | pub fn get_pluck(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] = note: `#[warn(clippy::result_unit_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video.rs:597:5 [INFO] [stdout] | [INFO] [stdout] 597 | pub fn set_board(&mut self, board: Vec>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video.rs:643:5 [INFO] [stdout] | [INFO] [stdout] 643 | pub fn get_pluck(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `game_board_clone` [INFO] [stdout] --> src/videos/base_video.rs:685:42 [INFO] [stdout] | [INFO] [stdout] 685 | ... for m in max(1, x) - 1..min(self.height, x + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 685 - for m in max(1, x) - 1..min(self.height, x + 2) { [INFO] [stdout] 685 + for (m, ) in game_board_clone.iter().enumerate().take(min(self.height, x + 2)).skip(max(1, x) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `game_board_clone` [INFO] [stdout] --> src/videos/base_video.rs:686:46 [INFO] [stdout] | [INFO] [stdout] 686 | ... for n in max(1, y) - 1..min(self.width, y + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 686 - for n in max(1, y) - 1..min(self.width, y + 2) { [INFO] [stdout] 686 + for (n, ) in game_board_clone.iter().enumerate().take(min(self.width, y + 2)).skip(max(1, y) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video.rs:845:5 [INFO] [stdout] | [INFO] [stdout] 845 | pub fn step(&mut self, e: &str, pos: (usize, usize)) -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/videos/base_video.rs:923:39 [INFO] [stdout] | [INFO] [stdout] 923 | self.start_time = self.end_time.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.end_time` [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: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video.rs:1022:5 [INFO] [stdout] | [INFO] [stdout] 1022 | pub fn step_game_state(&mut self, e: &str) -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video.rs:1296:13 [INFO] [stdout] | [INFO] [stdout] 1296 | return 0; [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] 1296 - return 0; [INFO] [stdout] 1296 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video.rs:1298:13 [INFO] [stdout] | [INFO] [stdout] 1298 | return 1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1298 - return 1; [INFO] [stdout] 1298 + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/videos/base_video.rs:1253:52 [INFO] [stdout] | [INFO] [stdout] 1253 | } else if self.software == "Viennasweeper" { [INFO] [stdout] | ____________________________________________________^ [INFO] [stdout] 1254 | | } else if self.software == "0.97 beta" { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/videos/base_video.rs:1254:48 [INFO] [stdout] | [INFO] [stdout] 1254 | } else if self.software == "0.97 beta" { [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 1255 | | } else if self.software == "元3.1.9" { [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn set_pix_size(&mut self, pix_size: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | return self.minesweeper_board.game_board.clone(); [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] 31 - return self.minesweeper_board.game_board.clone(); [INFO] [stdout] 31 + self.minesweeper_board.game_board.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn set_rtime(&mut self, time: U) -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:81:17 [INFO] [stdout] | [INFO] [stdout] 81 | return (time_ms - self.game_start_ms) as f64 / 1000.0; [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] 81 - return (time_ms - self.game_start_ms) as f64 / 1000.0; [INFO] [stdout] 81 + (time_ms - self.game_start_ms) as f64 / 1000.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:85:17 [INFO] [stdout] | [INFO] [stdout] 85 | return now.duration_since(self.video_start_instant).as_millis() as f64 / 1000.0; [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] 85 - return now.duration_since(self.video_start_instant).as_millis() as f64 / 1000.0; [INFO] [stdout] 85 + now.duration_since(self.video_start_instant).as_millis() as f64 / 1000.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn get_rtime(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn get_rtime_ms(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn get_video_start_time(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | pub fn get_video_end_time(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:171:5 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn set_current_event_id(&mut self, id: usize) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn set_use_question(&mut self, use_question: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:188:5 [INFO] [stdout] | [INFO] [stdout] 188 | pub fn set_use_cursor_pos_lim(&mut self, use_cursor_pos_lim: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | pub fn set_use_auto_replay(&mut self, use_auto_replay: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | pub fn set_is_official(&mut self, is_official: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | pub fn set_is_fair(&mut self, is_fair: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn set_mode(&mut self, mode: u16) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:235:5 [INFO] [stdout] | [INFO] [stdout] 235 | pub fn set_software(&mut self, software: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:246:5 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn set_player_identifier(&mut self, player_identifier: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | pub fn set_race_identifier(&mut self, race_identifier: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn set_uniqueness_identifier(&mut self, uniqueness_identifier: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:293:5 [INFO] [stdout] | [INFO] [stdout] 293 | pub fn set_country(&mut self, country: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:305:5 [INFO] [stdout] | [INFO] [stdout] 305 | pub fn set_device_uuid(&mut self, device_uuid: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:315:5 [INFO] [stdout] | [INFO] [stdout] 315 | pub fn set_checksum(&mut self, checksum: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:318:17 [INFO] [stdout] | [INFO] [stdout] 318 | return self.set_checksum_evf_v3(checksum); [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] 318 - return self.set_checksum_evf_v3(checksum); [INFO] [stdout] 318 + self.set_checksum_evf_v3(checksum) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:321:17 [INFO] [stdout] | [INFO] [stdout] 321 | return self.set_checksum_evf_v4(checksum); [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] 321 - return self.set_checksum_evf_v4(checksum); [INFO] [stdout] 321 + self.set_checksum_evf_v4(checksum) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:324:17 [INFO] [stdout] | [INFO] [stdout] 324 | return Err(()); [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] 324 - return Err(()); [INFO] [stdout] 324 + Err(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `self.raw_data.get(0)` [INFO] [stdout] --> src/videos/base_video_metrics.rs:316:15 [INFO] [stdout] | [INFO] [stdout] 316 | match self.raw_data.get(0).unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `self.raw_data.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:342:13 [INFO] [stdout] | [INFO] [stdout] 342 | return Ok(0); [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] 342 - return Ok(0); [INFO] [stdout] 342 + Ok(0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:348:13 [INFO] [stdout] | [INFO] [stdout] 348 | return Ok(0); [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] 348 - return Ok(0); [INFO] [stdout] 348 + Ok(0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/videos/base_video_metrics.rs:345:13 [INFO] [stdout] | [INFO] [stdout] 345 | / for i in 0..32 { [INFO] [stdout] 346 | | self.raw_data[ptr + i] = checksum[i]; [INFO] [stdout] 347 | | } [INFO] [stdout] | |_____________^ help: try replacing the loop by: `self.raw_data[ptr..(32 + ptr)].copy_from_slice(&checksum[..32]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/base_video_metrics.rs:370:9 [INFO] [stdout] | [INFO] [stdout] 370 | return Ok(0); [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] 370 - return Ok(0); [INFO] [stdout] 370 + Ok(0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:372:5 [INFO] [stdout] | [INFO] [stdout] 372 | pub fn get_raw_data(&self) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:539:5 [INFO] [stdout] | [INFO] [stdout] 539 | pub fn get_etime(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:551:5 [INFO] [stdout] | [INFO] [stdout] 551 | pub fn get_bbbv_s(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:561:5 [INFO] [stdout] | [INFO] [stdout] 561 | pub fn get_bbbv_solved(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:578:5 [INFO] [stdout] | [INFO] [stdout] 578 | pub fn get_stnb(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/base_video_metrics.rs:583:9 [INFO] [stdout] | [INFO] [stdout] 583 | let c; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `c` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 583 ~ [INFO] [stdout] 584 ~ let c = match (self.height, self.width, self.mine_num) { [INFO] [stdout] 585 ~ (8, 8, 10) => 47.299, [INFO] [stdout] 586 ~ (16, 16, 40) => 153.73, [INFO] [stdout] 587 ~ (16, 30, 99) => 435.001, [INFO] [stdout] 588 | _ => return Ok(0.0), [INFO] [stdout] 589 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:601:5 [INFO] [stdout] | [INFO] [stdout] 601 | pub fn get_rqp(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:608:5 [INFO] [stdout] | [INFO] [stdout] 608 | pub fn get_qg(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:615:5 [INFO] [stdout] | [INFO] [stdout] 615 | pub fn get_lce(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:629:5 [INFO] [stdout] | [INFO] [stdout] 629 | pub fn get_rce(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:643:5 [INFO] [stdout] | [INFO] [stdout] 643 | pub fn get_dce(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:657:5 [INFO] [stdout] | [INFO] [stdout] 657 | pub fn get_ce(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:674:5 [INFO] [stdout] | [INFO] [stdout] 674 | pub fn get_ce_s(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:681:5 [INFO] [stdout] | [INFO] [stdout] 681 | pub fn get_corr(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:689:5 [INFO] [stdout] | [INFO] [stdout] 689 | pub fn get_thrp(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:697:5 [INFO] [stdout] | [INFO] [stdout] 697 | pub fn get_ioe(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:706:5 [INFO] [stdout] | [INFO] [stdout] 706 | pub fn get_op_solved(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:718:5 [INFO] [stdout] | [INFO] [stdout] 718 | pub fn get_isl_solved(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/videos/base_video_metrics.rs:731:9 [INFO] [stdout] | [INFO] [stdout] 731 | let m_s; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `m_s` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 731 ~ [INFO] [stdout] 732 ~ let m_s = if self.game_board_state == GameBoardState::Display { [INFO] [stdout] 733 ~ self.video_action_state_recorder[self.current_event_id].mouse_state [INFO] [stdout] 734 | } else { [INFO] [stdout] 735 ~ self.minesweeper_board.mouse_state [INFO] [stdout] 736 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:748:5 [INFO] [stdout] | [INFO] [stdout] 748 | pub fn get_checksum(&self) -> Result, ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:759:5 [INFO] [stdout] | [INFO] [stdout] 759 | pub fn get_x_y(&self) -> Result<(u16, u16), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/base_video_metrics.rs:779:5 [INFO] [stdout] | [INFO] [stdout] 779 | pub fn get_pix_size(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `u8` [INFO] [stdout] --> src/videos/base_video_generate_evf.rs:533:32 [INFO] [stdout] | [INFO] [stdout] 533 | self.raw_data.push((t_ms).try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing `.try_into()` [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: casting integer literal to `u32` is unnecessary [INFO] [stdout] --> src/videos/base_video_generate_evf.rs:549:42 [INFO] [stdout] | [INFO] [stdout] 549 | let pause_time = min(65535 as u32, delta_t) as u16; [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `65535_u32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/byte_reader.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | return Err(ErrReadVideoReason::InvalidParams); [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] 112 - return Err(ErrReadVideoReason::InvalidParams); [INFO] [stdout] 112 + Err(ErrReadVideoReason::InvalidParams) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/videos/byte_reader.rs:121:10 [INFO] [stdout] | [INFO] [stdout] 121 | (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `year.is_multiple_of(4)` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/videos/byte_reader.rs:121:27 [INFO] [stdout] | [INFO] [stdout] 121 | (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `!year.is_multiple_of(100)` [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/videos/byte_reader.rs:121:47 [INFO] [stdout] | [INFO] [stdout] 121 | (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace with: `year.is_multiple_of(400)` [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: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/videos/byte_reader.rs:141:22 [INFO] [stdout] | [INFO] [stdout] 141 | total_days + day as u64 - 1 [INFO] [stdout] | ^^^^^^^^^^ help: try: `day` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/videos/minesweeper_board.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | /// 应用场景:强化学习训练AI、游戏复盘计算指标。不能处理高亮(18)、算法确定是雷(12)等标记。 [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 13 | /// 应用场景:强化学习训练AI、游戏复盘计算指标。不能处理高亮(18)、算法确定是雷(12)等标记。 [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/videos/minesweeper_board.rs:244:13 [INFO] [stdout] | [INFO] [stdout] 244 | return Ok(0); [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] 244 - return Ok(0); [INFO] [stdout] 244 + Ok(0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/videos/minesweeper_board.rs:363:17 [INFO] [stdout] | [INFO] [stdout] 363 | / if self.game_board[i][j] == 10 && self.board[i][j] == 0 && !game_board_mark[i][j] { [INFO] [stdout] 364 | | if self.cell_is_op_completed(i, j, &mut game_board_mark) { [INFO] [stdout] 365 | | op_num += 1; [INFO] [stdout] 366 | | } [INFO] [stdout] 367 | | } [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] 363 ~ if self.game_board[i][j] == 10 && self.board[i][j] == 0 && !game_board_mark[i][j] [INFO] [stdout] 364 ~ && self.cell_is_op_completed(i, j, &mut game_board_mark) { [INFO] [stdout] 365 | op_num += 1; [INFO] [stdout] 366 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/videos/minesweeper_board.rs:375:73 [INFO] [stdout] | [INFO] [stdout] 375 | fn cell_is_op_completed(&self, x: usize, y: usize, game_board_mark: &mut Vec>) -> 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] 375 - fn cell_is_op_completed(&self, x: usize, y: usize, game_board_mark: &mut Vec>) -> bool [INFO] [stdout] 375 + fn cell_is_op_completed(&self, x: usize, y: usize, game_board_mark: &mut [Vec]) -> bool [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `m` is used to index `game_board_mark` [INFO] [stdout] --> src/videos/minesweeper_board.rs:391:26 [INFO] [stdout] | [INFO] [stdout] 391 | for m in max(1, i) - 1..min(self.row, i + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 391 - for m in max(1, i) - 1..min(self.row, i + 2) { [INFO] [stdout] 391 + for (m, ) in game_board_mark.iter().enumerate().take(min(self.row, i + 2)).skip(max(1, i) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `n` is used to index `game_board_mark` [INFO] [stdout] --> src/videos/minesweeper_board.rs:392:30 [INFO] [stdout] | [INFO] [stdout] 392 | for n in max(1, j) - 1..min(self.column, j + 2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 392 - for n in max(1, j) - 1..min(self.column, j + 2) { [INFO] [stdout] 392 + for (n, ) in game_board_mark.iter().enumerate().take(min(self.column, j + 2)).skip(max(1, j) - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/videos/minesweeper_board.rs:413:5 [INFO] [stdout] | [INFO] [stdout] 413 | pub fn step(&mut self, e: &str, pos: (usize, usize)) -> Result [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/videos/minesweeper_board.rs:532:25 [INFO] [stdout] | [INFO] [stdout] 532 | "lr" => match self.mouse_state { [INFO] [stdout] | _________________________^ [INFO] [stdout] 533 | | MouseState::DownUp => { [INFO] [stdout] 534 | | if pos.0 == self.row && pos.1 == self.column { [INFO] [stdout] 535 | | self.mouse_state = MouseState::UpUp; [INFO] [stdout] ... | [INFO] [stdout] 558 | | _ => {} [INFO] [stdout] 559 | | }, [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 532 ~ "lr" => if self.mouse_state == MouseState::DownUp { [INFO] [stdout] 533 + if pos.0 == self.row && pos.1 == self.column { [INFO] [stdout] 534 + self.mouse_state = MouseState::UpUp; [INFO] [stdout] 535 + if self.pre_flag_num == 0 { [INFO] [stdout] 536 + self.game_board_state = GameBoardState::Ready; [INFO] [stdout] 537 + self.clear_click_num(); [INFO] [stdout] 538 + } else { [INFO] [stdout] 539 ~ // 预标雷阶段,在局面外左键弹起 [INFO] [stdout] 540 + self.left += 1; [INFO] [stdout] 541 + } [INFO] [stdout] 542 + return Ok(0); [INFO] [stdout] 543 + } [INFO] [stdout] 544 + if self.game_board[pos.0][pos.1] == 10 { [INFO] [stdout] 545 ~ // 预标雷阶段,在10上左键弹起 [WARN] too many lines in the log, truncating it