[INFO] cloning repository https://github.com/fasterthanlime/divsufsort [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fasterthanlime/divsufsort" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffasterthanlime%2Fdivsufsort", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffasterthanlime%2Fdivsufsort'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d1678f30e867834af2c2057872994fc16229acf4 [INFO] linting fasterthanlime/divsufsort against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffasterthanlime%2Fdivsufsort" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/fasterthanlime/divsufsort [INFO] finished tweaking git repo https://github.com/fasterthanlime/divsufsort [INFO] tweaked toml for git repo https://github.com/fasterthanlime/divsufsort written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/fasterthanlime/divsufsort on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/fasterthanlime/divsufsort 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 once_cell v1.2.0 [INFO] [stderr] Downloaded suffix_array v0.4.0 [INFO] [stderr] Downloaded bitpacking v0.6.0 [INFO] [stderr] Downloaded console v0.9.1 [INFO] [stderr] Downloaded cli-table v0.2.0 [INFO] [stderr] Downloaded pico-args v0.3.0 [INFO] [stderr] Downloaded size_format v1.0.2 [INFO] [stderr] Downloaded bincode v1.2.0 [INFO] [stderr] Downloaded better-panic v0.2.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] aa9181c676066427ce179896eb604d716e4b23e64a5941addbd4c95dc2fcd01b [INFO] running `Command { std: "docker" "start" "-a" "aa9181c676066427ce179896eb604d716e4b23e64a5941addbd4c95dc2fcd01b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "aa9181c676066427ce179896eb604d716e4b23e64a5941addbd4c95dc2fcd01b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aa9181c676066427ce179896eb604d716e4b23e64a5941addbd4c95dc2fcd01b", kill_on_drop: false }` [INFO] [stdout] aa9181c676066427ce179896eb604d716e4b23e64a5941addbd4c95dc2fcd01b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5f68a8bf1c09f29d3d7553fa2473519be6acbf4d63cf889166fb8c03d77cc24e [INFO] running `Command { std: "docker" "start" "-a" "5f68a8bf1c09f29d3d7553fa2473519be6acbf4d63cf889166fb8c03d77cc24e", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v0.1.7 [INFO] [stderr] Compiling libc v0.2.65 [INFO] [stderr] Compiling proc-macro2 v1.0.6 [INFO] [stderr] Compiling cc v1.0.47 [INFO] [stderr] Compiling syn v1.0.8 [INFO] [stderr] Checking scopeguard v1.0.0 [INFO] [stderr] Compiling rayon-core v1.6.1 [INFO] [stderr] Compiling crunchy v0.1.6 [INFO] [stderr] Compiling serde v1.0.102 [INFO] [stderr] Compiling typenum v1.11.2 [INFO] [stderr] Compiling byteorder v1.3.2 [INFO] [stderr] Checking either v1.5.3 [INFO] [stderr] Checking regex-syntax v0.6.12 [INFO] [stderr] Compiling failure_derive v0.1.6 [INFO] [stderr] Checking rustc-demangle v0.1.16 [INFO] [stderr] Compiling memoffset v0.5.3 [INFO] [stderr] Checking termcolor v1.0.5 [INFO] [stderr] Checking unicode-width v0.1.6 [INFO] [stderr] Checking pico-args v0.3.0 [INFO] [stderr] Checking dc3 v0.1.0 (/opt/rustwide/workdir/crates/dc3) [INFO] [stdout] warning: the loop variable `i` is only used to index `c` [INFO] [stdout] --> crates/dc3/src/lib.rs:27:18 [INFO] [stdout] | [INFO] [stdout] 27 | for i in 0..=K { [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] 27 - for i in 0..=K { [INFO] [stdout] 27 + for in c.iter_mut().take(K + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> crates/dc3/src/lib.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let n0 = (n + 2) / 3; [INFO] [stdout] | ^^^^^^^^^^^ help: consider using `.div_ceil()`: `n.div_ceil(3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant slicing of the whole range [INFO] [stdout] --> crates/dc3/src/lib.rs:76:39 [INFO] [stdout] | [INFO] [stdout] 76 | radix_pass(&R[..], &mut SA12[..], &T[..], n02, K); [INFO] [stdout] | ^^^^^^ help: use the original value instead: `T` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_slicing [INFO] [stdout] = note: `#[warn(clippy::redundant_slicing)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/dc3/src/lib.rs:89:20 [INFO] [stdout] | [INFO] [stdout] 89 | c0 = T[SA12[i] + 0]; [INFO] [stdout] | ^^^^^^^^^^^ help: consider reducing it to: `SA12[i]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `SA12` [INFO] [stdout] --> crates/dc3/src/lib.rs:120:18 [INFO] [stdout] | [INFO] [stdout] 120 | for i in 0..n02 { [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] 120 - for i in 0..n02 { [INFO] [stdout] 120 + for in SA12.iter().take(n02) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling num-traits v0.2.9 [INFO] [stderr] Compiling crossbeam-utils v0.7.0 [INFO] [stderr] Compiling crossbeam-epoch v0.8.0 [INFO] [stderr] Compiling num-integer v0.1.41 [INFO] [stderr] Compiling num-iter v0.1.39 [INFO] [stderr] Compiling num-complex v0.2.3 [INFO] [stderr] Compiling num-rational v0.2.2 [INFO] [stdout] warning: the loop variable `i` is only used to index `c` [INFO] [stdout] --> crates/dc3/src/lib.rs:27:18 [INFO] [stdout] | [INFO] [stdout] 27 | for i in 0..=K { [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] 27 - for i in 0..=K { [INFO] [stdout] 27 + for in c.iter_mut().take(K + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> crates/dc3/src/lib.rs:45:14 [INFO] [stdout] | [INFO] [stdout] 45 | let n0 = (n + 2) / 3; [INFO] [stdout] | ^^^^^^^^^^^ help: consider using `.div_ceil()`: `n.div_ceil(3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant slicing of the whole range [INFO] [stdout] --> crates/dc3/src/lib.rs:76:39 [INFO] [stdout] | [INFO] [stdout] 76 | radix_pass(&R[..], &mut SA12[..], &T[..], n02, K); [INFO] [stdout] | ^^^^^^ help: use the original value instead: `T` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_slicing [INFO] [stdout] = note: `#[warn(clippy::redundant_slicing)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/dc3/src/lib.rs:89:20 [INFO] [stdout] | [INFO] [stdout] 89 | c0 = T[SA12[i] + 0]; [INFO] [stdout] | ^^^^^^^^^^^ help: consider reducing it to: `SA12[i]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `SA12` [INFO] [stdout] --> crates/dc3/src/lib.rs:120:18 [INFO] [stdout] | [INFO] [stdout] 120 | for i in 0..n02 { [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] 120 - for i in 0..n02 { [INFO] [stdout] 120 + for in SA12.iter().take(n02) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `T` should have a snake case name [INFO] [stdout] --> crates/dc3/src/lib.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | let mut T = vec![0usize; s.len() + 3]; [INFO] [stdout] | ^ help: convert the identifier to snake case: `t` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `SA` should have a snake case name [INFO] [stdout] --> crates/dc3/src/lib.rs:208:17 [INFO] [stdout] | [INFO] [stdout] 208 | let mut SA = vec![0; n]; [INFO] [stdout] | ^^ help: convert the identifier to snake case: `sa` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `K` should have a snake case name [INFO] [stdout] --> crates/dc3/src/lib.rs:209:13 [INFO] [stdout] | [INFO] [stdout] 209 | let K = *T.iter().max().unwrap(); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `k` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling bincode v1.2.0 [INFO] [stderr] Checking cli-table v0.2.0 [INFO] [stderr] Checking bitpacking v0.6.0 [INFO] [stderr] Checking num_cpus v1.11.1 [INFO] [stderr] Checking termios v0.3.1 [INFO] [stderr] Checking clicolors-control v1.0.1 [INFO] [stderr] Compiling quote v1.0.2 [INFO] [stderr] Compiling backtrace-sys v0.1.32 [INFO] [stderr] Compiling cdivsufsort v2.0.0 (/opt/rustwide/workdir/crates/cdivsufsort) [INFO] [stderr] Checking regex v1.3.1 [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/cdivsufsort/build.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | / if build.get_compiler().is_like_msvc() { [INFO] [stdout] 13 | | build.flag("/Oi").flag("/Ot").flag("/Ox").flag("/Oy"); [INFO] [stdout] 14 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 11 ~ "release" [INFO] [stdout] 12 ~ if build.get_compiler().is_like_msvc() => { [INFO] [stdout] 13 | build.flag("/Oi").flag("/Ot").flag("/Ox").flag("/Oy"); [INFO] [stdout] 14 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking crossbeam-queue v0.2.0 [INFO] [stderr] Checking crossbeam-deque v0.7.2 [INFO] [stderr] Checking generic-array v0.12.3 [INFO] [stderr] Checking sacabase v2.0.0 (/opt/rustwide/workdir/crates/sacabase) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/sacabase/src/lib.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | text: text, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `text` [INFO] [stdout] ... [INFO] [stdout] 78 | return lcs!(sa!(0), len!(0)); [INFO] [stdout] | --------------------- in this macro invocation [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] = note: this warning originates in the macro `lcs` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/sacabase/src/lib.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | text: text, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `text` [INFO] [stdout] ... [INFO] [stdout] 84 | lcs!(sa!(0), x) [INFO] [stdout] | --------------- in this macro invocation [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: this warning originates in the macro `lcs` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/sacabase/src/lib.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | text: text, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `text` [INFO] [stdout] ... [INFO] [stdout] 86 | lcs!(sa!(1), y) [INFO] [stdout] | --------------- in this macro invocation [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: this warning originates in the macro `lcs` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/sacabase/src/lib.rs:145:36 [INFO] [stdout] | [INFO] [stdout] 145 | return Err(NotSorted { i: i, j: i + 1 }); [INFO] [stdout] | ^^^^ help: replace it with: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/sacabase/src/lib.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | text: text, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `text` [INFO] [stdout] ... [INFO] [stdout] 78 | return lcs!(sa!(0), len!(0)); [INFO] [stdout] | --------------------- in this macro invocation [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] = note: this warning originates in the macro `lcs` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/sacabase/src/lib.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | text: text, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `text` [INFO] [stdout] ... [INFO] [stdout] 84 | lcs!(sa!(0), x) [INFO] [stdout] | --------------- in this macro invocation [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: this warning originates in the macro `lcs` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/sacabase/src/lib.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | text: text, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `text` [INFO] [stdout] ... [INFO] [stdout] 86 | lcs!(sa!(1), y) [INFO] [stdout] | --------------- in this macro invocation [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: this warning originates in the macro `lcs` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/sacabase/src/lib.rs:145:36 [INFO] [stdout] | [INFO] [stdout] 145 | return Err(NotSorted { i: i, j: i + 1 }); [INFO] [stdout] | ^^^^ help: replace it with: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/sacabase/src/lib.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | if !(suff!(i) < suff!(i + 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(suff!(i) >= suff!(i + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> crates/sacabase/src/lib.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | if !(suff!(i) < suff!(i + 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 139 - &input[sa!($x)..] [INFO] [stdout] 139 + suff!(i)suff!(i + 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/sacabase/src/lib.rs:186:9 [INFO] [stdout] | [INFO] [stdout] 186 | return self.text; [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] 186 - return self.text; [INFO] [stdout] 186 + self.text [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/sacabase/src/lib.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | if !(suff!(i) < suff!(i + 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(suff!(i) >= suff!(i + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> crates/sacabase/src/lib.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | if !(suff!(i) < suff!(i + 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 139 - &input[sa!($x)..] [INFO] [stdout] 139 + suff!(i)suff!(i + 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking divsufsort v2.0.0 (/opt/rustwide/workdir/crates/divsufsort) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/sacabase/src/lib.rs:186:9 [INFO] [stdout] | [INFO] [stdout] 186 | return self.text; [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] 186 - return self.text; [INFO] [stdout] 186 + self.text [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> crates/divsufsort/src/crosscheck.rs:23:25 [INFO] [stdout] | [INFO] [stdout] 23 | let mut f = crate::crosscheck::CROSSCHECK_FILE.lock().unwrap(); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] = note: `#[warn(clippy::crate_in_macro_def)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> crates/divsufsort/src/crosscheck.rs:43:25 [INFO] [stdout] | [INFO] [stdout] 43 | let mut f = crate::crosscheck::CROSSCHECK_FILE.lock().unwrap(); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> crates/divsufsort/src/crosscheck.rs:74:25 [INFO] [stdout] | [INFO] [stdout] 74 | let mut f = crate::crosscheck::CROSSCHECK_FILE.lock().unwrap(); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:279:6 [INFO] [stdout] | [INFO] [stdout] 279 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:284:6 [INFO] [stdout] | [INFO] [stdout] 284 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:523:6 [INFO] [stdout] | [INFO] [stdout] 523 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:252:6 [INFO] [stdout] | [INFO] [stdout] 252 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> crates/divsufsort/src/crosscheck.rs:23:25 [INFO] [stdout] | [INFO] [stdout] 23 | let mut f = crate::crosscheck::CROSSCHECK_FILE.lock().unwrap(); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] = note: `#[warn(clippy::crate_in_macro_def)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> crates/divsufsort/src/crosscheck.rs:43:25 [INFO] [stdout] | [INFO] [stdout] 43 | let mut f = crate::crosscheck::CROSSCHECK_FILE.lock().unwrap(); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> crates/divsufsort/src/crosscheck.rs:74:25 [INFO] [stdout] | [INFO] [stdout] 74 | let mut f = crate::crosscheck::CROSSCHECK_FILE.lock().unwrap(); [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:279:6 [INFO] [stdout] | [INFO] [stdout] 279 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:284:6 [INFO] [stdout] | [INFO] [stdout] 284 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:523:6 [INFO] [stdout] | [INFO] [stdout] 523 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:252:6 [INFO] [stdout] | [INFO] [stdout] 252 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> crates/divsufsort/src/common.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | pub const ALPHABET_SIZE: usize = u8::max_value() as usize + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 12 - pub const ALPHABET_SIZE: usize = u8::max_value() as usize + 1; [INFO] [stdout] 12 + pub const ALPHABET_SIZE: usize = u8::MAX as usize + 1; [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] --> crates/divsufsort/src/common.rs:202:1 [INFO] [stdout] | [INFO] [stdout] 202 | impl Into for SAPtr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [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] 202 ~ impl From for Idx { [INFO] [stdout] 203 | #[inline(always)] [INFO] [stdout] 204 ~ fn from(val: SAPtr) -> Self { [INFO] [stdout] 205 ~ val.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | T.len() < i32::max_value() as usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 10 - T.len() < i32::max_value() as usize, [INFO] [stdout] 10 + T.len() < i32::MAX as usize, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | i32::max_value() - 1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 12 - i32::max_value() - 1 [INFO] [stdout] 12 + i32::MAX - 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:79:16 [INFO] [stdout] | [INFO] [stdout] 79 | if !(0 <= i) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(0 > i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:84:16 [INFO] [stdout] | [INFO] [stdout] 84 | if !(c0 >= c1) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(c0 < c1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:104:20 [INFO] [stdout] | [INFO] [stdout] 104 | if !(0 <= i) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(0 > i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:108:20 [INFO] [stdout] | [INFO] [stdout] 108 | if !(c0 <= c1) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(c0 > c1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:233:20 [INFO] [stdout] | [INFO] [stdout] 233 | if !(SA[i] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[i] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:261:24 [INFO] [stdout] | [INFO] [stdout] 261 | if !(0 <= i) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(0 > i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:265:24 [INFO] [stdout] | [INFO] [stdout] 265 | if !(c0 >= c1) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(c0 < c1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:285:28 [INFO] [stdout] | [INFO] [stdout] 285 | if !(0 <= i) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(0 > i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:289:28 [INFO] [stdout] | [INFO] [stdout] 289 | if !(c0 <= c1) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(c0 > c1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | 0 + lg_table[((n >> 0) & 0xff) as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `lg_table[((n >> 0) & 0xff) as usize]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:28:23 [INFO] [stdout] | [INFO] [stdout] 28 | 0 + lg_table[((n >> 0) & 0xff) as usize] [INFO] [stdout] | ^^^^^^^^ help: consider reducing it to: `n` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | let e: Idx; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 65 | / e = if (x & 0xffff_0000) > 0 { [INFO] [stdout] 66 | | if (x & 0xff00_0000) > 0 { [INFO] [stdout] 67 | | 24 + lg_table[((x >> 24) & 0xff) as usize] [INFO] [stdout] 68 | | } else { [INFO] [stdout] ... | [INFO] [stdout] 77 | | }; [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] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `e` here [INFO] [stdout] | [INFO] [stdout] 59 ~ [INFO] [stdout] 60 | [INFO] [stdout] ... [INFO] [stdout] 64 | [INFO] [stdout] 65 ~ let e: Idx = if (x & 0xffff_0000) > 0 { [INFO] [stdout] 66 + if (x & 0xff00_0000) > 0 { [INFO] [stdout] 67 + 24 + lg_table[((x >> 24) & 0xff) as usize] [INFO] [stdout] 68 + } else { [INFO] [stdout] 69 + 16 + lg_table[((x >> 16) & 0xff) as usize] [INFO] [stdout] 70 + } [INFO] [stdout] 71 + } else { [INFO] [stdout] 72 + if (x & 0x0000_ff00) > 0 { [INFO] [stdout] 73 + 8 + lg_table[(((x >> 8) & 0xff) as usize)] [INFO] [stdout] 74 + } else { [INFO] [stdout] 75 + 0 + lg_table[(((x >> 0) & 0xff) as usize)] [INFO] [stdout] 76 + } [INFO] [stdout] 77 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | 0 + lg_table[(((x >> 0) & 0xff) as usize)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `lg_table[(((x >> 0) & 0xff) as usize)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:75:28 [INFO] [stdout] | [INFO] [stdout] 75 | 0 + lg_table[(((x >> 0) & 0xff) as usize)] [INFO] [stdout] | ^^^^^^^^ help: consider reducing it to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 120 | / let res = if U1 < U1n { [INFO] [stdout] 121 | | if U2 < U2n { [INFO] [stdout] 122 | | T.get(U1) - T.get(U2) [INFO] [stdout] 123 | | } else { [INFO] [stdout] ... | [INFO] [stdout] 132 | | }; [INFO] [stdout] | |______- unnecessary `let` binding [INFO] [stdout] 133 | res [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 120 ~ [INFO] [stdout] 121 ~ if U1 < U1n { [INFO] [stdout] 122 + if U2 < U2n { [INFO] [stdout] 123 + T.get(U1) - T.get(U2) [INFO] [stdout] 124 + } else { [INFO] [stdout] 125 + 1 [INFO] [stdout] 126 + } [INFO] [stdout] 127 + } else { [INFO] [stdout] 128 + if U2 < U2n { [INFO] [stdout] 129 + -1 [INFO] [stdout] 130 + } else { [INFO] [stdout] 131 + 0 [INFO] [stdout] 132 + } [INFO] [stdout] 133 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:162:16 [INFO] [stdout] | [INFO] [stdout] 162 | if !(0 < r) { [INFO] [stdout] | ^^^^^^^^ help: try: `(0 >= r)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 237 | if !(j < size) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(j >= size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:358:1 [INFO] [stdout] | [INFO] [stdout] 358 | / pub fn ss_median5( [INFO] [stdout] 359 | | T: &Text, [INFO] [stdout] 360 | | Td: Idx, [INFO] [stdout] 361 | | SA: &SuffixArray, [INFO] [stdout] ... | [INFO] [stdout] 367 | | mut v5: SAPtr, [INFO] [stdout] 368 | | ) -> SAPtr { [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 boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:474:16 [INFO] [stdout] | [INFO] [stdout] 474 | if !((PA!(a!()) + depth) >= (PA!(a!() + 1) + 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((PA!(a!()) + depth) < (PA!(a!() + 1) + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:488:16 [INFO] [stdout] | [INFO] [stdout] 488 | if !((PA!(b!()) + depth) < (PA!(b!() + 1) + 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((PA!(b!()) + depth) >= (PA!(b!() + 1) + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:471:16 [INFO] [stdout] | [INFO] [stdout] 471 | if !(a < b) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] = note: `#[warn(clippy::neg_cmp_op_on_partial_ord)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:485:16 [INFO] [stdout] | [INFO] [stdout] 485 | if !(a < b) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:548:16 [INFO] [stdout] | [INFO] [stdout] 548 | if !stack [INFO] [stdout] | ________________^ [INFO] [stdout] 549 | | .pop(&mut first, &mut last, &mut depth, &mut limit) [INFO] [stdout] 550 | | .is_ok() [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] 548 ~ if stack [INFO] [stdout] 549 + .pop(&mut first, &mut last, &mut depth, &mut limit).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:637:16 [INFO] [stdout] | [INFO] [stdout] 637 | if !(x == v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x != v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:651:20 [INFO] [stdout] | [INFO] [stdout] 651 | if !(x <= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x > v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:670:16 [INFO] [stdout] | [INFO] [stdout] 670 | if !(x == v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x != v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:684:20 [INFO] [stdout] | [INFO] [stdout] 684 | if !(x >= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x < v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:705:20 [INFO] [stdout] | [INFO] [stdout] 705 | if !(x <= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x > v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:721:20 [INFO] [stdout] | [INFO] [stdout] 721 | if !(x >= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x < v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:633:16 [INFO] [stdout] | [INFO] [stdout] 633 | if !(b < last) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:647:20 [INFO] [stdout] | [INFO] [stdout] 647 | if !(b < last) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:666:16 [INFO] [stdout] | [INFO] [stdout] 666 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:680:20 [INFO] [stdout] | [INFO] [stdout] 680 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:701:20 [INFO] [stdout] | [INFO] [stdout] 701 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:717:20 [INFO] [stdout] | [INFO] [stdout] 717 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:770:17 [INFO] [stdout] | [INFO] [stdout] 769 | let res = ss_partition(SA, PA, a, c, depth); [INFO] [stdout] | -------------------------------------------- unnecessary `let` binding [INFO] [stdout] 770 | res [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 769 ~ [INFO] [stdout] 770 ~ ss_partition(SA, PA, a, c, depth) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1045:20 [INFO] [stdout] | [INFO] [stdout] 1045 | if !(SA[b] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[b] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1070:20 [INFO] [stdout] | [INFO] [stdout] 1070 | if !(SA[c] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[c] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1088:20 [INFO] [stdout] | [INFO] [stdout] 1088 | if !(SA[b] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[b] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1113:20 [INFO] [stdout] | [INFO] [stdout] 1113 | if !(SA[c] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[c] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1003:1 [INFO] [stdout] | [INFO] [stdout] 1003 | / pub fn ss_mergeforward( [INFO] [stdout] 1004 | | T: &Text, [INFO] [stdout] 1005 | | SA: &mut SuffixArray, [INFO] [stdout] 1006 | | PA: SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 1011 | | depth: Idx, [INFO] [stdout] 1012 | | ) { [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 boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1176:24 [INFO] [stdout] | [INFO] [stdout] 1176 | if !(SA[b] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[b] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1242:24 [INFO] [stdout] | [INFO] [stdout] 1242 | if !(SA[b] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[b] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1265:24 [INFO] [stdout] | [INFO] [stdout] 1265 | if !(SA[c] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[c] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1122:1 [INFO] [stdout] | [INFO] [stdout] 1122 | / pub fn ss_mergebackward( [INFO] [stdout] 1123 | | T: &Text, [INFO] [stdout] 1124 | | SA: &mut SuffixArray, [INFO] [stdout] 1125 | | PA: SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 1130 | | depth: Idx, [INFO] [stdout] 1131 | | ) { [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 function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1348:5 [INFO] [stdout] | [INFO] [stdout] 1348 | fn pop(&mut self, a: &mut SAPtr, b: &mut SAPtr, c: &mut SAPtr, d: &mut Idx) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] = note: `#[warn(clippy::double_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1433:16 [INFO] [stdout] | [INFO] [stdout] 1433 | if !stack [INFO] [stdout] | ________________^ [INFO] [stdout] 1434 | | .pop(&mut first, &mut middle, &mut last, &mut check) [INFO] [stdout] 1435 | | .is_ok() [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] 1433 ~ if stack [INFO] [stdout] 1434 + .pop(&mut first, &mut middle, &mut last, &mut check).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1452:16 [INFO] [stdout] | [INFO] [stdout] 1452 | if !stack [INFO] [stdout] | ________________^ [INFO] [stdout] 1453 | | .pop(&mut first, &mut middle, &mut last, &mut check) [INFO] [stdout] 1454 | | .is_ok() [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] 1452 ~ if stack [INFO] [stdout] 1453 + .pop(&mut first, &mut middle, &mut last, &mut check).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1553:16 [INFO] [stdout] | [INFO] [stdout] 1553 | if !stack [INFO] [stdout] | ________________^ [INFO] [stdout] 1554 | | .pop(&mut first, &mut middle, &mut last, &mut check) [INFO] [stdout] 1555 | | .is_ok() [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] 1553 ~ if stack [INFO] [stdout] 1554 + .pop(&mut first, &mut middle, &mut last, &mut check).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1363:1 [INFO] [stdout] | [INFO] [stdout] 1363 | / pub fn ss_swapmerge( [INFO] [stdout] 1364 | | T: &Text, [INFO] [stdout] 1365 | | SA: &mut SuffixArray, [INFO] [stdout] 1366 | | PA: SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 1372 | | depth: Idx, [INFO] [stdout] 1373 | | ) { [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 function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1610:5 [INFO] [stdout] | [INFO] [stdout] 1610 | fn pop(&mut self, a: &mut SAPtr, b: &mut SAPtr, c: &mut Idx, d: &mut Idx) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1631:1 [INFO] [stdout] | [INFO] [stdout] 1631 | / pub fn sssort( [INFO] [stdout] 1632 | | T: &Text, [INFO] [stdout] 1633 | | SA: &mut SuffixArray, [INFO] [stdout] 1634 | | PA: SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 1641 | | lastsuffix: bool, [INFO] [stdout] 1642 | | ) { [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 operation has no effect [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | 0 + lg_table[((n >> 0) & 0xff) as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `lg_table[((n >> 0) & 0xff) as usize]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:34:27 [INFO] [stdout] | [INFO] [stdout] 34 | 0 + lg_table[((n >> 0) & 0xff) as usize] [INFO] [stdout] | ^^^^^^^^ help: consider reducing it to: `n` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | / fn pop( [INFO] [stdout] 156 | | &mut self, [INFO] [stdout] 157 | | a: &mut SAPtr, [INFO] [stdout] 158 | | b: &mut SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 161 | | e: &mut Idx, [INFO] [stdout] 162 | | ) -> Result<(), ()> { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:201:16 [INFO] [stdout] | [INFO] [stdout] 201 | if !(0 > r) { [INFO] [stdout] | ^^^^^^^^ help: try: `(0 <= r)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:260:12 [INFO] [stdout] | [INFO] [stdout] 260 | if !(j < size) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(j >= size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:452:9 [INFO] [stdout] | [INFO] [stdout] 452 | 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 452 - return true; [INFO] [stdout] 452 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking console v0.9.1 [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:495:12 [INFO] [stdout] | [INFO] [stdout] 495 | if !(x == v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x != v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:508:16 [INFO] [stdout] | [INFO] [stdout] 508 | if !(x <= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x > v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:528:12 [INFO] [stdout] | [INFO] [stdout] 528 | if !(x == v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x != v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:541:16 [INFO] [stdout] | [INFO] [stdout] 541 | if !(x >= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x < v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:561:16 [INFO] [stdout] | [INFO] [stdout] 561 | if !(x <= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x > v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:577:16 [INFO] [stdout] | [INFO] [stdout] 577 | if !(x >= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x < v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:460:1 [INFO] [stdout] | [INFO] [stdout] 460 | / pub fn tr_partition( [INFO] [stdout] 461 | | SA: &mut SuffixArray, [INFO] [stdout] 462 | | ISAd: SAPtr, [INFO] [stdout] 463 | | mut first: SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 468 | | v: Idx, [INFO] [stdout] 469 | | ) { [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: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:491:12 [INFO] [stdout] | [INFO] [stdout] 491 | if !(b < last) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:504:16 [INFO] [stdout] | [INFO] [stdout] 504 | if !(b < last) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:537:16 [INFO] [stdout] | [INFO] [stdout] 537 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:557:16 [INFO] [stdout] | [INFO] [stdout] 557 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:573:16 [INFO] [stdout] | [INFO] [stdout] 573 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:889:28 [INFO] [stdout] | [INFO] [stdout] 889 | if !stack [INFO] [stdout] | ____________________________^ [INFO] [stdout] 890 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 891 | | .is_ok() [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] 889 ~ if stack [INFO] [stdout] 890 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:918:28 [INFO] [stdout] | [INFO] [stdout] 918 | if !stack [INFO] [stdout] | ____________________________^ [INFO] [stdout] 919 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 920 | | .is_ok() [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] 918 ~ if stack [INFO] [stdout] 919 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:942:20 [INFO] [stdout] | [INFO] [stdout] 942 | if !stack [INFO] [stdout] | ____________________^ [INFO] [stdout] 943 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 944 | | .is_ok() [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] 942 ~ if stack [INFO] [stdout] 943 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:979:28 [INFO] [stdout] | [INFO] [stdout] 979 | if !(SA[a] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[a] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1044:32 [INFO] [stdout] | [INFO] [stdout] 1044 | ... if !stack [INFO] [stdout] | __________________________^ [INFO] [stdout] 1045 | | ... .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 1046 | | ... .is_ok() [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] 1044 ~ if stack [INFO] [stdout] 1045 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1063:24 [INFO] [stdout] | [INFO] [stdout] 1063 | if !stack [INFO] [stdout] | ________________________^ [INFO] [stdout] 1064 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 1065 | | .is_ok() [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] 1063 ~ if stack [INFO] [stdout] 1064 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1287:28 [INFO] [stdout] | [INFO] [stdout] 1287 | if !stack [INFO] [stdout] | ____________________________^ [INFO] [stdout] 1288 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 1289 | | .is_ok() [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] 1287 ~ if stack [INFO] [stdout] 1288 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1306:28 [INFO] [stdout] | [INFO] [stdout] 1306 | if !stack [INFO] [stdout] | ____________________________^ [INFO] [stdout] 1307 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 1308 | | .is_ok() [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] 1306 ~ if stack [INFO] [stdout] 1307 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1328:20 [INFO] [stdout] | [INFO] [stdout] 1328 | if !stack [INFO] [stdout] | ____________________^ [INFO] [stdout] 1329 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 1330 | | .is_ok() [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] 1328 ~ if stack [INFO] [stdout] 1329 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1396:16 [INFO] [stdout] | [INFO] [stdout] 1396 | if !(first < n) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this item has comments with 4 forward slashes (`////`). These look like doc comments, but they aren't [INFO] [stdout] --> crates/divsufsort/src/lib.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / //// Sort suffixes [INFO] [stdout] 25 | | pub fn sort(text: &[u8]) -> sacabase::SuffixArray { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#four_forward_slashes [INFO] [stdout] = note: `#[warn(clippy::four_forward_slashes)]` on by default [INFO] [stdout] help: make this a doc comment by removing one `/` [INFO] [stdout] | [INFO] [stdout] 24 - //// Sort suffixes [INFO] [stdout] 25 - pub fn sort(text: &[u8]) -> sacabase::SuffixArray { [INFO] [stdout] 24 + /// Sort suffixes [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking num v0.2.0 [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> crates/divsufsort/src/lib.rs:25:19 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn sort(text: &[u8]) -> sacabase::SuffixArray { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 25 | pub fn sort(text: &[u8]) -> sacabase::SuffixArray<'_, Idx> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking size_format v1.0.2 [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> crates/cdivsufsort/src/lib.rs:16:22 [INFO] [stdout] | [INFO] [stdout] 16 | text.len() < i32::max_value() as usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 16 - text.len() < i32::max_value() as usize, [INFO] [stdout] 16 + text.len() < i32::MAX as usize, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> crates/cdivsufsort/src/lib.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | i32::max_value() - 1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 18 - i32::max_value() - 1 [INFO] [stdout] 18 + i32::MAX - 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> crates/cdivsufsort/src/lib.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray { [INFO] [stdout] | ^^ ^^ ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 26 - pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray { [INFO] [stdout] 26 + pub fn sort(text: &[u8]) -> sacabase::SuffixArray { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this item has comments with 4 forward slashes (`////`). These look like doc comments, but they aren't [INFO] [stdout] --> crates/cdivsufsort/src/lib.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | / //// Sort suffixes [INFO] [stdout] 26 | | pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#four_forward_slashes [INFO] [stdout] = note: `#[warn(clippy::four_forward_slashes)]` on by default [INFO] [stdout] help: make this a doc comment by removing one `/` [INFO] [stdout] | [INFO] [stdout] 25 - //// Sort suffixes [INFO] [stdout] 26 - pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray { [INFO] [stdout] 25 + /// Sort suffixes [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> crates/cdivsufsort/src/lib.rs:26:36 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray { [INFO] [stdout] | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 26 | pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray<'a, i32> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> crates/cdivsufsort/src/lib.rs:16:22 [INFO] [stdout] | [INFO] [stdout] 16 | text.len() < i32::max_value() as usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 16 - text.len() < i32::max_value() as usize, [INFO] [stdout] 16 + text.len() < i32::MAX as usize, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> crates/cdivsufsort/src/lib.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | i32::max_value() - 1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 18 - i32::max_value() - 1 [INFO] [stdout] 18 + i32::MAX - 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> crates/cdivsufsort/src/lib.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray { [INFO] [stdout] | ^^ ^^ ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 26 - pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray { [INFO] [stdout] 26 + pub fn sort(text: &[u8]) -> sacabase::SuffixArray { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this item has comments with 4 forward slashes (`////`). These look like doc comments, but they aren't [INFO] [stdout] --> crates/cdivsufsort/src/lib.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | / //// Sort suffixes [INFO] [stdout] 26 | | pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#four_forward_slashes [INFO] [stdout] = note: `#[warn(clippy::four_forward_slashes)]` on by default [INFO] [stdout] help: make this a doc comment by removing one `/` [INFO] [stdout] | [INFO] [stdout] 25 - //// Sort suffixes [INFO] [stdout] 26 - pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray { [INFO] [stdout] 25 + /// Sort suffixes [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> crates/cdivsufsort/src/lib.rs:26:36 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray { [INFO] [stdout] | -- ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 26 | pub fn sort<'a>(text: &'a [u8]) -> sacabase::SuffixArray<'a, i32> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> crates/divsufsort/src/common.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | pub const ALPHABET_SIZE: usize = u8::max_value() as usize + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 12 - pub const ALPHABET_SIZE: usize = u8::max_value() as usize + 1; [INFO] [stdout] 12 + pub const ALPHABET_SIZE: usize = u8::MAX as usize + 1; [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] --> crates/divsufsort/src/common.rs:202:1 [INFO] [stdout] | [INFO] [stdout] 202 | impl Into for SAPtr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [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] 202 ~ impl From for Idx { [INFO] [stdout] 203 | #[inline(always)] [INFO] [stdout] 204 ~ fn from(val: SAPtr) -> Self { [INFO] [stdout] 205 ~ val.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | T.len() < i32::max_value() as usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 10 - T.len() < i32::max_value() as usize, [INFO] [stdout] 10 + T.len() < i32::MAX as usize, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | i32::max_value() - 1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 12 - i32::max_value() - 1 [INFO] [stdout] 12 + i32::MAX - 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:79:16 [INFO] [stdout] | [INFO] [stdout] 79 | if !(0 <= i) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(0 > i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:84:16 [INFO] [stdout] | [INFO] [stdout] 84 | if !(c0 >= c1) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(c0 < c1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:104:20 [INFO] [stdout] | [INFO] [stdout] 104 | if !(0 <= i) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(0 > i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:108:20 [INFO] [stdout] | [INFO] [stdout] 108 | if !(c0 <= c1) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(c0 > c1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:233:20 [INFO] [stdout] | [INFO] [stdout] 233 | if !(SA[i] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[i] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:261:24 [INFO] [stdout] | [INFO] [stdout] 261 | if !(0 <= i) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(0 > i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:265:24 [INFO] [stdout] | [INFO] [stdout] 265 | if !(c0 >= c1) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(c0 < c1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:285:28 [INFO] [stdout] | [INFO] [stdout] 285 | if !(0 <= i) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(0 > i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/divsufsort.rs:289:28 [INFO] [stdout] | [INFO] [stdout] 289 | if !(c0 <= c1) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(c0 > c1)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | 0 + lg_table[((n >> 0) & 0xff) as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `lg_table[((n >> 0) & 0xff) as usize]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:28:23 [INFO] [stdout] | [INFO] [stdout] 28 | 0 + lg_table[((n >> 0) & 0xff) as usize] [INFO] [stdout] | ^^^^^^^^ help: consider reducing it to: `n` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | let e: Idx; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 65 | / e = if (x & 0xffff_0000) > 0 { [INFO] [stdout] 66 | | if (x & 0xff00_0000) > 0 { [INFO] [stdout] 67 | | 24 + lg_table[((x >> 24) & 0xff) as usize] [INFO] [stdout] 68 | | } else { [INFO] [stdout] ... | [INFO] [stdout] 77 | | }; [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] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `e` here [INFO] [stdout] | [INFO] [stdout] 59 ~ [INFO] [stdout] 60 | [INFO] [stdout] ... [INFO] [stdout] 64 | [INFO] [stdout] 65 ~ let e: Idx = if (x & 0xffff_0000) > 0 { [INFO] [stdout] 66 + if (x & 0xff00_0000) > 0 { [INFO] [stdout] 67 + 24 + lg_table[((x >> 24) & 0xff) as usize] [INFO] [stdout] 68 + } else { [INFO] [stdout] 69 + 16 + lg_table[((x >> 16) & 0xff) as usize] [INFO] [stdout] 70 + } [INFO] [stdout] 71 + } else { [INFO] [stdout] 72 + if (x & 0x0000_ff00) > 0 { [INFO] [stdout] 73 + 8 + lg_table[(((x >> 8) & 0xff) as usize)] [INFO] [stdout] 74 + } else { [INFO] [stdout] 75 + 0 + lg_table[(((x >> 0) & 0xff) as usize)] [INFO] [stdout] 76 + } [INFO] [stdout] 77 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | 0 + lg_table[(((x >> 0) & 0xff) as usize)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `lg_table[(((x >> 0) & 0xff) as usize)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:75:28 [INFO] [stdout] | [INFO] [stdout] 75 | 0 + lg_table[(((x >> 0) & 0xff) as usize)] [INFO] [stdout] | ^^^^^^^^ help: consider reducing it to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 120 | / let res = if U1 < U1n { [INFO] [stdout] 121 | | if U2 < U2n { [INFO] [stdout] 122 | | T.get(U1) - T.get(U2) [INFO] [stdout] 123 | | } else { [INFO] [stdout] ... | [INFO] [stdout] 132 | | }; [INFO] [stdout] | |______- unnecessary `let` binding [INFO] [stdout] 133 | res [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 120 ~ [INFO] [stdout] 121 ~ if U1 < U1n { [INFO] [stdout] 122 + if U2 < U2n { [INFO] [stdout] 123 + T.get(U1) - T.get(U2) [INFO] [stdout] 124 + } else { [INFO] [stdout] 125 + 1 [INFO] [stdout] 126 + } [INFO] [stdout] 127 + } else { [INFO] [stdout] 128 + if U2 < U2n { [INFO] [stdout] 129 + -1 [INFO] [stdout] 130 + } else { [INFO] [stdout] 131 + 0 [INFO] [stdout] 132 + } [INFO] [stdout] 133 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:162:16 [INFO] [stdout] | [INFO] [stdout] 162 | if !(0 < r) { [INFO] [stdout] | ^^^^^^^^ help: try: `(0 >= r)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 237 | if !(j < size) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(j >= size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:358:1 [INFO] [stdout] | [INFO] [stdout] 358 | / pub fn ss_median5( [INFO] [stdout] 359 | | T: &Text, [INFO] [stdout] 360 | | Td: Idx, [INFO] [stdout] 361 | | SA: &SuffixArray, [INFO] [stdout] ... | [INFO] [stdout] 367 | | mut v5: SAPtr, [INFO] [stdout] 368 | | ) -> SAPtr { [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 boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:474:16 [INFO] [stdout] | [INFO] [stdout] 474 | if !((PA!(a!()) + depth) >= (PA!(a!() + 1) + 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((PA!(a!()) + depth) < (PA!(a!() + 1) + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:488:16 [INFO] [stdout] | [INFO] [stdout] 488 | if !((PA!(b!()) + depth) < (PA!(b!() + 1) + 1)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((PA!(b!()) + depth) >= (PA!(b!() + 1) + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:471:16 [INFO] [stdout] | [INFO] [stdout] 471 | if !(a < b) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] = note: `#[warn(clippy::neg_cmp_op_on_partial_ord)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:485:16 [INFO] [stdout] | [INFO] [stdout] 485 | if !(a < b) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:548:16 [INFO] [stdout] | [INFO] [stdout] 548 | if !stack [INFO] [stdout] | ________________^ [INFO] [stdout] 549 | | .pop(&mut first, &mut last, &mut depth, &mut limit) [INFO] [stdout] 550 | | .is_ok() [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] 548 ~ if stack [INFO] [stdout] 549 + .pop(&mut first, &mut last, &mut depth, &mut limit).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:637:16 [INFO] [stdout] | [INFO] [stdout] 637 | if !(x == v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x != v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:651:20 [INFO] [stdout] | [INFO] [stdout] 651 | if !(x <= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x > v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:670:16 [INFO] [stdout] | [INFO] [stdout] 670 | if !(x == v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x != v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:684:20 [INFO] [stdout] | [INFO] [stdout] 684 | if !(x >= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x < v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:705:20 [INFO] [stdout] | [INFO] [stdout] 705 | if !(x <= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x > v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:721:20 [INFO] [stdout] | [INFO] [stdout] 721 | if !(x >= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x < v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:633:16 [INFO] [stdout] | [INFO] [stdout] 633 | if !(b < last) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:647:20 [INFO] [stdout] | [INFO] [stdout] 647 | if !(b < last) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:666:16 [INFO] [stdout] | [INFO] [stdout] 666 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:680:20 [INFO] [stdout] | [INFO] [stdout] 680 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:701:20 [INFO] [stdout] | [INFO] [stdout] 701 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:717:20 [INFO] [stdout] | [INFO] [stdout] 717 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:770:17 [INFO] [stdout] | [INFO] [stdout] 769 | let res = ss_partition(SA, PA, a, c, depth); [INFO] [stdout] | -------------------------------------------- unnecessary `let` binding [INFO] [stdout] 770 | res [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 769 ~ [INFO] [stdout] 770 ~ ss_partition(SA, PA, a, c, depth) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1045:20 [INFO] [stdout] | [INFO] [stdout] 1045 | if !(SA[b] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[b] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1070:20 [INFO] [stdout] | [INFO] [stdout] 1070 | if !(SA[c] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[c] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1088:20 [INFO] [stdout] | [INFO] [stdout] 1088 | if !(SA[b] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[b] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1113:20 [INFO] [stdout] | [INFO] [stdout] 1113 | if !(SA[c] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[c] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1003:1 [INFO] [stdout] | [INFO] [stdout] 1003 | / pub fn ss_mergeforward( [INFO] [stdout] 1004 | | T: &Text, [INFO] [stdout] 1005 | | SA: &mut SuffixArray, [INFO] [stdout] 1006 | | PA: SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 1011 | | depth: Idx, [INFO] [stdout] 1012 | | ) { [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 boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1176:24 [INFO] [stdout] | [INFO] [stdout] 1176 | if !(SA[b] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[b] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1242:24 [INFO] [stdout] | [INFO] [stdout] 1242 | if !(SA[b] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[b] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1265:24 [INFO] [stdout] | [INFO] [stdout] 1265 | if !(SA[c] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[c] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1122:1 [INFO] [stdout] | [INFO] [stdout] 1122 | / pub fn ss_mergebackward( [INFO] [stdout] 1123 | | T: &Text, [INFO] [stdout] 1124 | | SA: &mut SuffixArray, [INFO] [stdout] 1125 | | PA: SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 1130 | | depth: Idx, [INFO] [stdout] 1131 | | ) { [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 function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1348:5 [INFO] [stdout] | [INFO] [stdout] 1348 | fn pop(&mut self, a: &mut SAPtr, b: &mut SAPtr, c: &mut SAPtr, d: &mut Idx) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] = note: `#[warn(clippy::double_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1433:16 [INFO] [stdout] | [INFO] [stdout] 1433 | if !stack [INFO] [stdout] | ________________^ [INFO] [stdout] 1434 | | .pop(&mut first, &mut middle, &mut last, &mut check) [INFO] [stdout] 1435 | | .is_ok() [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] 1433 ~ if stack [INFO] [stdout] 1434 + .pop(&mut first, &mut middle, &mut last, &mut check).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1452:16 [INFO] [stdout] | [INFO] [stdout] 1452 | if !stack [INFO] [stdout] | ________________^ [INFO] [stdout] 1453 | | .pop(&mut first, &mut middle, &mut last, &mut check) [INFO] [stdout] 1454 | | .is_ok() [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] 1452 ~ if stack [INFO] [stdout] 1453 + .pop(&mut first, &mut middle, &mut last, &mut check).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1553:16 [INFO] [stdout] | [INFO] [stdout] 1553 | if !stack [INFO] [stdout] | ________________^ [INFO] [stdout] 1554 | | .pop(&mut first, &mut middle, &mut last, &mut check) [INFO] [stdout] 1555 | | .is_ok() [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] 1553 ~ if stack [INFO] [stdout] 1554 + .pop(&mut first, &mut middle, &mut last, &mut check).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1363:1 [INFO] [stdout] | [INFO] [stdout] 1363 | / pub fn ss_swapmerge( [INFO] [stdout] 1364 | | T: &Text, [INFO] [stdout] 1365 | | SA: &mut SuffixArray, [INFO] [stdout] 1366 | | PA: SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 1372 | | depth: Idx, [INFO] [stdout] 1373 | | ) { [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 function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1610:5 [INFO] [stdout] | [INFO] [stdout] 1610 | fn pop(&mut self, a: &mut SAPtr, b: &mut SAPtr, c: &mut Idx, d: &mut Idx) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/divsufsort/src/sssort.rs:1631:1 [INFO] [stdout] | [INFO] [stdout] 1631 | / pub fn sssort( [INFO] [stdout] 1632 | | T: &Text, [INFO] [stdout] 1633 | | SA: &mut SuffixArray, [INFO] [stdout] 1634 | | PA: SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 1641 | | lastsuffix: bool, [INFO] [stdout] 1642 | | ) { [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 operation has no effect [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | 0 + lg_table[((n >> 0) & 0xff) as usize] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `lg_table[((n >> 0) & 0xff) as usize]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:34:27 [INFO] [stdout] | [INFO] [stdout] 34 | 0 + lg_table[((n >> 0) & 0xff) as usize] [INFO] [stdout] | ^^^^^^^^ help: consider reducing it to: `n` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | / fn pop( [INFO] [stdout] 156 | | &mut self, [INFO] [stdout] 157 | | a: &mut SAPtr, [INFO] [stdout] 158 | | b: &mut SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 161 | | e: &mut Idx, [INFO] [stdout] 162 | | ) -> Result<(), ()> { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking backtrace v0.3.40 [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:201:16 [INFO] [stdout] | [INFO] [stdout] 201 | if !(0 > r) { [INFO] [stdout] | ^^^^^^^^ help: try: `(0 <= r)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:260:12 [INFO] [stdout] | [INFO] [stdout] 260 | if !(j < size) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `(j >= size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:452:9 [INFO] [stdout] | [INFO] [stdout] 452 | 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 452 - return true; [INFO] [stdout] 452 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:495:12 [INFO] [stdout] | [INFO] [stdout] 495 | if !(x == v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x != v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:508:16 [INFO] [stdout] | [INFO] [stdout] 508 | if !(x <= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x > v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:528:12 [INFO] [stdout] | [INFO] [stdout] 528 | if !(x == v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x != v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:541:16 [INFO] [stdout] | [INFO] [stdout] 541 | if !(x >= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x < v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:561:16 [INFO] [stdout] | [INFO] [stdout] 561 | if !(x <= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x > v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:577:16 [INFO] [stdout] | [INFO] [stdout] 577 | if !(x >= v) { [INFO] [stdout] | ^^^^^^^^^ help: try: `(x < v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:460:1 [INFO] [stdout] | [INFO] [stdout] 460 | / pub fn tr_partition( [INFO] [stdout] 461 | | SA: &mut SuffixArray, [INFO] [stdout] 462 | | ISAd: SAPtr, [INFO] [stdout] 463 | | mut first: SAPtr, [INFO] [stdout] ... | [INFO] [stdout] 468 | | v: Idx, [INFO] [stdout] 469 | | ) { [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: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:491:12 [INFO] [stdout] | [INFO] [stdout] 491 | if !(b < last) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:504:16 [INFO] [stdout] | [INFO] [stdout] 504 | if !(b < last) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:524:12 [INFO] [stdout] | [INFO] [stdout] 524 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:537:16 [INFO] [stdout] | [INFO] [stdout] 537 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:557:16 [INFO] [stdout] | [INFO] [stdout] 557 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:573:16 [INFO] [stdout] | [INFO] [stdout] 573 | if !(b < c) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:889:28 [INFO] [stdout] | [INFO] [stdout] 889 | if !stack [INFO] [stdout] | ____________________________^ [INFO] [stdout] 890 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 891 | | .is_ok() [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] 889 ~ if stack [INFO] [stdout] 890 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:918:28 [INFO] [stdout] | [INFO] [stdout] 918 | if !stack [INFO] [stdout] | ____________________________^ [INFO] [stdout] 919 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 920 | | .is_ok() [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] 918 ~ if stack [INFO] [stdout] 919 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:942:20 [INFO] [stdout] | [INFO] [stdout] 942 | if !stack [INFO] [stdout] | ____________________^ [INFO] [stdout] 943 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 944 | | .is_ok() [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] 942 ~ if stack [INFO] [stdout] 943 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:979:28 [INFO] [stdout] | [INFO] [stdout] 979 | if !(SA[a] < 0) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(SA[a] >= 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1044:32 [INFO] [stdout] | [INFO] [stdout] 1044 | ... if !stack [INFO] [stdout] | __________________________^ [INFO] [stdout] 1045 | | ... .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 1046 | | ... .is_ok() [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] 1044 ~ if stack [INFO] [stdout] 1045 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1063:24 [INFO] [stdout] | [INFO] [stdout] 1063 | if !stack [INFO] [stdout] | ________________________^ [INFO] [stdout] 1064 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 1065 | | .is_ok() [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] 1063 ~ if stack [INFO] [stdout] 1064 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1287:28 [INFO] [stdout] | [INFO] [stdout] 1287 | if !stack [INFO] [stdout] | ____________________________^ [INFO] [stdout] 1288 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 1289 | | .is_ok() [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] 1287 ~ if stack [INFO] [stdout] 1288 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1306:28 [INFO] [stdout] | [INFO] [stdout] 1306 | if !stack [INFO] [stdout] | ____________________________^ [INFO] [stdout] 1307 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 1308 | | .is_ok() [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] 1306 ~ if stack [INFO] [stdout] 1307 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1328:20 [INFO] [stdout] | [INFO] [stdout] 1328 | if !stack [INFO] [stdout] | ____________________^ [INFO] [stdout] 1329 | | .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink) [INFO] [stdout] 1330 | | .is_ok() [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] 1328 ~ if stack [INFO] [stdout] 1329 + .pop(&mut ISAd, &mut first, &mut last, &mut limit, &mut trlink).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable [INFO] [stdout] --> crates/divsufsort/src/trsort.rs:1396:16 [INFO] [stdout] | [INFO] [stdout] 1396 | if !(first < n) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this item has comments with 4 forward slashes (`////`). These look like doc comments, but they aren't [INFO] [stdout] --> crates/divsufsort/src/lib.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / //// Sort suffixes [INFO] [stdout] 25 | | pub fn sort(text: &[u8]) -> sacabase::SuffixArray { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#four_forward_slashes [INFO] [stdout] = note: `#[warn(clippy::four_forward_slashes)]` on by default [INFO] [stdout] help: make this a doc comment by removing one `/` [INFO] [stdout] | [INFO] [stdout] 24 - //// Sort suffixes [INFO] [stdout] 25 - pub fn sort(text: &[u8]) -> sacabase::SuffixArray { [INFO] [stdout] 24 + /// Sort suffixes [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> crates/divsufsort/src/lib.rs:25:19 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn sort(text: &[u8]) -> sacabase::SuffixArray { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 25 | pub fn sort(text: &[u8]) -> sacabase::SuffixArray<'_, Idx> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking rayon v1.2.1 [INFO] [stderr] Checking better-panic v0.2.0 [INFO] [stderr] Compiling synstructure v0.12.3 [INFO] [stderr] Compiling serde_derive v1.0.102 [INFO] [stderr] Checking sacapart v2.0.0 (/opt/rustwide/workdir/crates/sacapart) [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/sacapart/src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | sas.sort_by(|(i, _), (j, _)| i.cmp(j)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 50 - sas.sort_by(|(i, _), (j, _)| i.cmp(j)); [INFO] [stdout] 50 + sas.sort_by_key(|(i, _)| *i); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/sacapart/src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | sas.sort_by(|(i, _), (j, _)| i.cmp(j)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 50 - sas.sort_by(|(i, _), (j, _)| i.cmp(j)); [INFO] [stdout] 50 + sas.sort_by_key(|(i, _)| *i); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `as_bytes` after slicing a string [INFO] [stdout] --> crates/sacapart/src/lib.rs:117:20 [INFO] [stdout] | [INFO] [stdout] 117 | assert_eq!(needle[..2].as_bytes(), part_match.as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `&needle.as_bytes()[..2]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#sliced_string_as_bytes [INFO] [stdout] = note: `#[warn(clippy::sliced_string_as_bytes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking failure v0.1.6 [INFO] [stderr] Checking suffix_array v0.4.0 [INFO] [stderr] Checking divsuftest v0.1.0 (/opt/rustwide/workdir/crates/divsuftest) [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/divsuftest/src/main.rs:35:30 [INFO] [stdout] | [INFO] [stdout] 35 | let cmd = Command::parse(&args.free.get(0).unwrap_or_else(|| { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 36 | | usage(); [INFO] [stdout] 37 | | unreachable!(); [INFO] [stdout] 38 | | })) [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 35 ~ let cmd = Command::parse(args.free.get(0).unwrap_or_else(|| { [INFO] [stdout] 36 + usage(); [INFO] [stdout] 37 + unreachable!(); [INFO] [stdout] 38 ~ })) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/divsuftest/src/main.rs:35:30 [INFO] [stdout] | [INFO] [stdout] 35 | let cmd = Command::parse(&args.free.get(0).unwrap_or_else(|| { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 36 | | usage(); [INFO] [stdout] 37 | | unreachable!(); [INFO] [stdout] 38 | | })) [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 35 ~ let cmd = Command::parse(args.free.get(0).unwrap_or_else(|| { [INFO] [stdout] 36 + usage(); [INFO] [stdout] 37 + unreachable!(); [INFO] [stdout] 38 ~ })) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `args.free.get(0)` [INFO] [stdout] --> crates/divsuftest/src/main.rs:35:31 [INFO] [stdout] | [INFO] [stdout] 35 | let cmd = Command::parse(&args.free.get(0).unwrap_or_else(|| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `args.free.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: accessing first element with `args.free.get(0)` [INFO] [stdout] --> crates/divsuftest/src/main.rs:35:31 [INFO] [stdout] | [INFO] [stdout] 35 | let cmd = Command::parse(&args.free.get(0).unwrap_or_else(|| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `args.free.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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.97s [INFO] running `Command { std: "docker" "inspect" "5f68a8bf1c09f29d3d7553fa2473519be6acbf4d63cf889166fb8c03d77cc24e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5f68a8bf1c09f29d3d7553fa2473519be6acbf4d63cf889166fb8c03d77cc24e", kill_on_drop: false }` [INFO] [stdout] 5f68a8bf1c09f29d3d7553fa2473519be6acbf4d63cf889166fb8c03d77cc24e