[INFO] cloning repository https://github.com/taketo1024/yui [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/taketo1024/yui" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaketo1024%2Fyui", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaketo1024%2Fyui'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 49b3f14f1c3f7a7a6ff8330cd8a81c73448b3a26 [INFO] linting taketo1024/yui against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaketo1024%2Fyui" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/taketo1024/yui [INFO] finished tweaking git repo https://github.com/taketo1024/yui [INFO] tweaked toml for git repo https://github.com/taketo1024/yui written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/taketo1024/yui 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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 178 packages to latest compatible versions [INFO] [stderr] Adding nalgebra v0.33.2 (available: v0.34.1) [INFO] [stderr] Adding nalgebra-sparse v0.10.0 (available: v0.11.0) [INFO] [stderr] Adding rand v0.9.2 (available: v0.10.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded simplelog v0.12.2 [INFO] [stderr] Downloaded dinglebit_combinatorics v1.1.0 [INFO] [stderr] Downloaded delegate v0.13.5 [INFO] [stderr] Downloaded auto-impl-ops v0.2.1 [INFO] [stderr] Downloaded is-even v1.0.0 [INFO] [stderr] Downloaded derive-syn-parse v0.1.5 [INFO] [stderr] Downloaded is-odd v1.1.1 [INFO] [stderr] Downloaded grouping_by v0.2.2 [INFO] [stderr] Downloaded cartesian v0.3.0 [INFO] [stderr] Downloaded prettytable v0.10.0 [INFO] [stderr] Downloaded alga v0.9.3 [INFO] [stderr] Downloaded portable-atomic-util v0.2.6 [INFO] [stderr] Downloaded sprs v0.11.4 [INFO] [stderr] Downloaded nalgebra-sparse v0.10.0 [INFO] [stderr] Downloaded ndarray v0.17.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 2da7affd8745d16bdcbd0475887f857fa88f409e7916877131e36cd78b132be4 [INFO] running `Command { std: "docker" "start" "-a" "2da7affd8745d16bdcbd0475887f857fa88f409e7916877131e36cd78b132be4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2da7affd8745d16bdcbd0475887f857fa88f409e7916877131e36cd78b132be4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2da7affd8745d16bdcbd0475887f857fa88f409e7916877131e36cd78b132be4", kill_on_drop: false }` [INFO] [stdout] 2da7affd8745d16bdcbd0475887f857fa88f409e7916877131e36cd78b132be4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 9eae90c20900e1440b842333c8b50b5c01b6511b53ceeb8a5071a7aa0a54d4a6 [INFO] running `Command { std: "docker" "start" "-a" "9eae90c20900e1440b842333c8b50b5c01b6511b53ceeb8a5071a7aa0a54d4a6", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Checking itoa v1.0.17 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Checking deranged v0.5.8 [INFO] [stderr] Checking csv-core v0.1.13 [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking num_threads v0.1.7 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Checking regex-syntax v0.8.10 [INFO] [stderr] Checking ryu v1.0.23 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Checking encode_unicode v1.0.0 [INFO] [stderr] Checking once_cell v1.21.4 [INFO] [stderr] Checking is-odd v1.1.1 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Checking is-even v1.0.0 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Checking dinglebit_combinatorics v1.1.0 [INFO] [stderr] Checking safe_arch v0.7.4 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking wide v0.7.33 [INFO] [stderr] Checking cartesian v0.3.0 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Checking hashbrown v0.15.5 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking approx v0.3.2 [INFO] [stderr] Checking fixedbitset v0.5.7 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking grouping_by v0.2.2 [INFO] [stderr] Checking anstyle-parse v1.0.0 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Checking is-terminal v0.4.17 [INFO] [stderr] Checking alga v0.9.3 [INFO] [stderr] Checking dirs-next v2.0.0 [INFO] [stderr] Checking rand_core v0.9.5 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking anstyle v1.0.14 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking term v0.7.0 [INFO] [stderr] Checking colorchoice v1.0.5 [INFO] [stderr] Checking clap_lex v1.1.0 [INFO] [stderr] Checking anstream v1.0.0 [INFO] [stderr] Checking clap_builder v4.6.0 [INFO] [stderr] Checking csv v1.4.0 [INFO] [stderr] Checking indexmap v2.13.0 [INFO] [stderr] Checking simplelog v0.12.2 [INFO] [stderr] Checking prettytable v0.10.0 [INFO] [stderr] Checking petgraph v0.8.3 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Compiling strum_macros v0.24.3 [INFO] [stderr] Compiling derive-syn-parse v0.1.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling delegate v0.13.5 [INFO] [stderr] Compiling nalgebra-macros v0.2.2 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling strum v0.24.1 [INFO] [stderr] Compiling auto-impl-ops v0.2.1 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking clap v4.6.0 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking bimap v0.6.3 [INFO] [stderr] Checking yui-core v0.4.0 (/opt/rustwide/workdir/lib-core) [INFO] [stderr] Checking simba v0.9.1 [INFO] [stderr] Checking ndarray v0.17.2 [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:254:6 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, T> Rem<&'b Ratio> for &'a Ratio [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:254:6 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, T> Rem<&'b Ratio> for &'a Ratio [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] 254 - impl<'a, 'b, T> Rem<&'b Ratio> for &'a Ratio [INFO] [stdout] 254 + impl<'b, T> Rem<&'b Ratio> for &Ratio [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:254:10 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, T> Rem<&'b Ratio> for &'a Ratio [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `FF2` which implements the `Copy` trait [INFO] [stdout] --> lib-core/src/types/num/f2.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | self.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:80:6 [INFO] [stdout] | [INFO] [stdout] 80 | impl<'a, 'b> Add<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/f2.rs:80:6 [INFO] [stdout] | [INFO] [stdout] 80 | impl<'a, 'b> Add<&'b FF2> for &'a FF2 { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 80 - impl<'a, 'b> Add<&'b FF2> for &'a FF2 { [INFO] [stdout] 80 + impl<'b> Add<&'b FF2> for &FF2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:80:10 [INFO] [stdout] | [INFO] [stdout] 80 | impl<'a, 'b> Add<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:88:6 [INFO] [stdout] | [INFO] [stdout] 88 | impl<'a, 'b> Sub<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/f2.rs:88:6 [INFO] [stdout] | [INFO] [stdout] 88 | impl<'a, 'b> Sub<&'b FF2> for &'a FF2 { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 88 - impl<'a, 'b> Sub<&'b FF2> for &'a FF2 { [INFO] [stdout] 88 + impl<'b> Sub<&'b FF2> for &FF2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:88:10 [INFO] [stdout] | [INFO] [stdout] 88 | impl<'a, 'b> Sub<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:96:6 [INFO] [stdout] | [INFO] [stdout] 96 | impl<'a, 'b> Mul<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/f2.rs:96:6 [INFO] [stdout] | [INFO] [stdout] 96 | impl<'a, 'b> Mul<&'b FF2> for &'a FF2 { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 96 - impl<'a, 'b> Mul<&'b FF2> for &'a FF2 { [INFO] [stdout] 96 + impl<'b> Mul<&'b FF2> for &FF2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:96:10 [INFO] [stdout] | [INFO] [stdout] 96 | impl<'a, 'b> Mul<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:104:6 [INFO] [stdout] | [INFO] [stdout] 104 | impl<'a, 'b> Div<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/f2.rs:104:6 [INFO] [stdout] | [INFO] [stdout] 104 | impl<'a, 'b> Div<&'b FF2> for &'a FF2 { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 104 - impl<'a, 'b> Div<&'b FF2> for &'a FF2 { [INFO] [stdout] 104 + impl<'b> Div<&'b FF2> for &FF2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `FF2` which implements the `Copy` trait [INFO] [stdout] --> lib-core/src/types/num/f2.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | self.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:104:10 [INFO] [stdout] | [INFO] [stdout] 104 | impl<'a, 'b> Div<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:113:6 [INFO] [stdout] | [INFO] [stdout] 113 | impl<'a, 'b> Rem<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/f2.rs:113:6 [INFO] [stdout] | [INFO] [stdout] 113 | impl<'a, 'b> Rem<&'b FF2> for &'a FF2 { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 113 - impl<'a, 'b> Rem<&'b FF2> for &'a FF2 { [INFO] [stdout] 113 + impl<'b> Rem<&'b FF2> for &FF2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:113:10 [INFO] [stdout] | [INFO] [stdout] 113 | impl<'a, 'b> Rem<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ff.rs:101:6 [INFO] [stdout] | [INFO] [stdout] 101 | impl<'a, 'b, const p: I> Div<&'b FF

> for &'a FF

{ [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/ff.rs:101:6 [INFO] [stdout] | [INFO] [stdout] 101 | impl<'a, 'b, const p: I> Div<&'b FF

> for &'a FF

{ [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 101 - impl<'a, 'b, const p: I> Div<&'b FF

> for &'a FF

{ [INFO] [stdout] 101 + impl<'b, const p: I> Div<&'b FF

> for &FF

{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ff.rs:101:10 [INFO] [stdout] | [INFO] [stdout] 101 | impl<'a, 'b, const p: I> Div<&'b FF

> for &'a FF

{ [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ff.rs:110:6 [INFO] [stdout] | [INFO] [stdout] 110 | impl<'a, 'b, const p: I> Rem<&'b FF

> for &'a FF

{ [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/ff.rs:110:6 [INFO] [stdout] | [INFO] [stdout] 110 | impl<'a, 'b, const p: I> Rem<&'b FF

> for &'a FF

{ [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 110 - impl<'a, 'b, const p: I> Rem<&'b FF

> for &'a FF

{ [INFO] [stdout] 110 + impl<'b, const p: I> Rem<&'b FF

> for &FF

{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ff.rs:110:10 [INFO] [stdout] | [INFO] [stdout] 110 | impl<'a, 'b, const p: I> Rem<&'b FF

> for &'a FF

{ [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:197:6 [INFO] [stdout] | [INFO] [stdout] 197 | impl<'a, 'b, I, const D: i32> Mul<&'b QuadInt> for &'a QuadInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/qint.rs:197:6 [INFO] [stdout] | [INFO] [stdout] 197 | impl<'a, 'b, I, const D: i32> Mul<&'b QuadInt> for &'a QuadInt [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 197 - impl<'a, 'b, I, const D: i32> Mul<&'b QuadInt> for &'a QuadInt [INFO] [stdout] 197 + impl<'b, I, const D: i32> Mul<&'b QuadInt> for &QuadInt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:197:10 [INFO] [stdout] | [INFO] [stdout] 197 | impl<'a, 'b, I, const D: i32> Mul<&'b QuadInt> for &'a QuadInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:264:6 [INFO] [stdout] | [INFO] [stdout] 264 | impl<'a, 'b, I> Div<&'b GaussInt> for &'a GaussInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/qint.rs:264:6 [INFO] [stdout] | [INFO] [stdout] 264 | impl<'a, 'b, I> Div<&'b GaussInt> for &'a GaussInt [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 264 - impl<'a, 'b, I> Div<&'b GaussInt> for &'a GaussInt [INFO] [stdout] 264 + impl<'b, I> Div<&'b GaussInt> for &GaussInt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:264:10 [INFO] [stdout] | [INFO] [stdout] 264 | impl<'a, 'b, I> Div<&'b GaussInt> for &'a GaussInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:274:6 [INFO] [stdout] | [INFO] [stdout] 274 | impl<'a, 'b, I> Rem<&'b GaussInt> for &'a GaussInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/qint.rs:274:6 [INFO] [stdout] | [INFO] [stdout] 274 | impl<'a, 'b, I> Rem<&'b GaussInt> for &'a GaussInt [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 274 - impl<'a, 'b, I> Rem<&'b GaussInt> for &'a GaussInt [INFO] [stdout] 274 + impl<'b, I> Rem<&'b GaussInt> for &GaussInt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:274:10 [INFO] [stdout] | [INFO] [stdout] 274 | impl<'a, 'b, I> Rem<&'b GaussInt> for &'a GaussInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:308:6 [INFO] [stdout] | [INFO] [stdout] 308 | impl<'a, 'b, I> Div<&'b EisenInt> for &'a EisenInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/qint.rs:308:6 [INFO] [stdout] | [INFO] [stdout] 308 | impl<'a, 'b, I> Div<&'b EisenInt> for &'a EisenInt [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 308 - impl<'a, 'b, I> Div<&'b EisenInt> for &'a EisenInt [INFO] [stdout] 308 + impl<'b, I> Div<&'b EisenInt> for &EisenInt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:308:10 [INFO] [stdout] | [INFO] [stdout] 308 | impl<'a, 'b, I> Div<&'b EisenInt> for &'a EisenInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:318:6 [INFO] [stdout] | [INFO] [stdout] 318 | impl<'a, 'b, I> Rem<&'b EisenInt> for &'a EisenInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/qint.rs:318:6 [INFO] [stdout] | [INFO] [stdout] 318 | impl<'a, 'b, I> Rem<&'b EisenInt> for &'a EisenInt [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 318 - impl<'a, 'b, I> Rem<&'b EisenInt> for &'a EisenInt [INFO] [stdout] 318 + impl<'b, I> Rem<&'b EisenInt> for &EisenInt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:318:10 [INFO] [stdout] | [INFO] [stdout] 318 | impl<'a, 'b, I> Rem<&'b EisenInt> for &'a EisenInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> lib-core/src/types/lc/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | mod lc; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/lc/lc.rs:136:44 [INFO] [stdout] | [INFO] [stdout] 136 | self.into_iter().filter(|(x, _)| f(&x)).collect() [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> lib-core/src/types/lc/lc.rs:207:25 [INFO] [stdout] | [INFO] [stdout] 207 | Self::from_iter(value.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:152:20 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 207 - Self::from_iter(value.into_iter()) [INFO] [stdout] 207 + Self::from_iter(value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `+` in `MulAssign` impl [INFO] [stdout] --> lib-core/src/types/poly/var.rs:69:16 [INFO] [stdout] | [INFO] [stdout] 69 | self.0 += &rhs.0 // x^i * x^j = x^{i+j} [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stdout] = note: `#[warn(clippy::suspicious_op_assign_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `-` in `DivAssign` impl [INFO] [stdout] --> lib-core/src/types/poly/var.rs:77:16 [INFO] [stdout] | [INFO] [stdout] 77 | self.0 -= &rhs.0 // x^i * x^j = x^{i+j} [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/var2.rs:85:28 [INFO] [stdout] | [INFO] [stdout] 85 | if !r_all.is_match(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/var2.rs:91:34 [INFO] [stdout] | [INFO] [stdout] 91 | for c in r.captures_iter(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/var3.rs:87:28 [INFO] [stdout] | [INFO] [stdout] 87 | if !r_all.is_match(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/var3.rs:93:34 [INFO] [stdout] | [INFO] [stdout] 93 | for c in r.captures_iter(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/mvar.rs:92:50 [INFO] [stdout] | [INFO] [stdout] 92 | if !Regex::new(&p_all).unwrap().is_match(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/mvar.rs:99:34 [INFO] [stdout] | [INFO] [stdout] 99 | for c in r.captures_iter(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `+` in `MulAssign` impl [INFO] [stdout] --> lib-core/src/types/poly/mvar.rs:116:16 [INFO] [stdout] | [INFO] [stdout] 116 | self.0 += &rhs.0 // x^i * x^j = x^{i+j} [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `-` in `DivAssign` impl [INFO] [stdout] --> lib-core/src/types/poly/mvar.rs:124:16 [INFO] [stdout] | [INFO] [stdout] 124 | self.0 -= &rhs.0 // x^i * x^j = x^{i+j} [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> lib-core/src/types/poly/mod.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | mod poly; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> lib-core/src/types/poly/h_poly.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | return [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] 113 - } else if rhs.is_zero() { [INFO] [stdout] 114 - return [INFO] [stdout] 113 + } else if rhs.is_zero() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> lib-core/src/types/poly/h_poly.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | return [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 128 - } else if rhs.is_zero() { [INFO] [stdout] 129 - return [INFO] [stdout] 128 + } else if rhs.is_zero() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> lib-core/src/traits/tex.rs:26:34 [INFO] [stdout] | [INFO] [stdout] 26 | format!("${}$", s.to_string()) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `KeyedUnionFind` [INFO] [stdout] --> lib-core/src/misc/union_find.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | / pub fn new() -> Self { [INFO] [stdout] 64 | | Self { inner: UnionFind::new(0), keys: vec![], dict: HashMap::new() } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 62 + impl Default for KeyedUnionFind [INFO] [stdout] 63 + where X: Eq + Hash [INFO] [stdout] 64 + { [INFO] [stdout] 65 + fn default() -> Self { [INFO] [stdout] 66 + Self::new() [INFO] [stdout] 67 + } [INFO] [stdout] 68 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> lib-core/src/misc/union_find.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 129 | let x = Rc::into_inner(x).unwrap(); [INFO] [stdout] | ----------------------------------- unnecessary `let` binding [INFO] [stdout] 130 | x [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] 129 ~ [INFO] [stdout] 130 ~ Rc::into_inner(x).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> lib-core/src/util/format.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | format!("{r}") [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `r.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SyncCounter` [INFO] [stdout] --> lib-core/src/util/sync.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | / pub fn new() -> Self { [INFO] [stdout] 9 | | let count = Mutex::new(0); [INFO] [stdout] 10 | | Self { count } [INFO] [stdout] 11 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 7 + impl Default for SyncCounter { [INFO] [stdout] 8 + fn default() -> Self { [INFO] [stdout] 9 + Self::new() [INFO] [stdout] 10 + } [INFO] [stdout] 11 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking yui-link v0.4.0 (/opt/rustwide/workdir/lib-link) [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> lib-link/src/link/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | mod link; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-link/src/link/link.rs:138:31 [INFO] [stdout] | [INFO] [stdout] 138 | comps.into_iter().map(|edges| [INFO] [stdout] | _______________________________^ [INFO] [stdout] 139 | | Path::circ(edges) [INFO] [stdout] | |_____________________________^ help: replace the closure with the associated function itself: `Path::circ` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> lib-link/src/link/link.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | if e == f && (n_index != i || (n_index == i && e_index != j)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 243 - if e == f && (n_index != i || (n_index == i && e_index != j)) { [INFO] [stdout] 243 + if !(e != f || n_index == i && e_index == j) { [INFO] [stdout] | [INFO] [stdout] 243 - if e == f && (n_index != i || (n_index == i && e_index != j)) { [INFO] [stdout] 243 + if (e_index != j || n_index != i) && e == f { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> lib-link/src/link/link.rs:243:30 [INFO] [stdout] | [INFO] [stdout] 243 | if e == f && (n_index != i || (n_index == i && e_index != j)) { [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] 243 - if e == f && (n_index != i || (n_index == i && e_index != j)) { [INFO] [stdout] 243 + if e == f && !(n_index == i && e_index == j) { [INFO] [stdout] | [INFO] [stdout] 243 - if e == f && (n_index != i || (n_index == i && e_index != j)) { [INFO] [stdout] 243 + if e == f && n_index != i || e_index != j { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> lib-link/src/link/node.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | self.edges.iter().min().unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.edges.iter().min().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-link/src/link/node.rs:111:35 [INFO] [stdout] | [INFO] [stdout] 111 | edges: self.edges.map(|e| f(e)) [INFO] [stdout] | ^^^^^^^^ help: replace the closure with the function itself: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Path` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> lib-link/src/link/path.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-link/src/inv_link.rs:192:28 [INFO] [stdout] | [INFO] [stdout] 192 | assert_eq!(l.inv_x(&nodes[0]), nodes[1]); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `nodes[0]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-link/src/inv_link.rs:193:28 [INFO] [stdout] | [INFO] [stdout] 193 | assert_eq!(l.inv_x(&nodes[1]), nodes[0]); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `nodes[1]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-link/src/inv_link.rs:194:28 [INFO] [stdout] | [INFO] [stdout] 194 | assert_eq!(l.inv_x(&nodes[2]), nodes[2]); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `nodes[2]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `i32::abs()` to usize [INFO] [stdout] --> lib-link/src/braid.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | self.0.abs() as usize [INFO] [stdout] | ^^^^^^^^^^^^ help: replace with: `self.0.unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> lib-link/src/link/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | mod link; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Braid` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> lib-link/src/braid.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn len(&self) -> usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-link/src/link/link.rs:138:31 [INFO] [stdout] | [INFO] [stdout] 138 | comps.into_iter().map(|edges| [INFO] [stdout] | _______________________________^ [INFO] [stdout] 139 | | Path::circ(edges) [INFO] [stdout] | |_____________________________^ help: replace the closure with the associated function itself: `Path::circ` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> lib-link/src/link/link.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | if e == f && (n_index != i || (n_index == i && e_index != j)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 243 - if e == f && (n_index != i || (n_index == i && e_index != j)) { [INFO] [stdout] 243 + if !(e != f || n_index == i && e_index == j) { [INFO] [stdout] | [INFO] [stdout] 243 - if e == f && (n_index != i || (n_index == i && e_index != j)) { [INFO] [stdout] 243 + if (e_index != j || n_index != i) && e == f { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> lib-link/src/link/link.rs:243:30 [INFO] [stdout] | [INFO] [stdout] 243 | if e == f && (n_index != i || (n_index == i && e_index != j)) { [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] 243 - if e == f && (n_index != i || (n_index == i && e_index != j)) { [INFO] [stdout] 243 + if e == f && !(n_index == i && e_index == j) { [INFO] [stdout] | [INFO] [stdout] 243 - if e == f && (n_index != i || (n_index == i && e_index != j)) { [INFO] [stdout] 243 + if e == f && n_index != i || e_index != j { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `impl std::iter::Iterator` [INFO] [stdout] --> lib-link/src/util/jones.rs:18:23 [INFO] [stdout] | [INFO] [stdout] 18 | let body = P::sum(State::generate(n).into_iter().map(|s| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `State::generate(n)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> lib-link/src/link/node.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | self.edges.iter().min().unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.edges.iter().min().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-link/src/link/node.rs:111:35 [INFO] [stdout] | [INFO] [stdout] 111 | edges: self.edges.map(|e| f(e)) [INFO] [stdout] | ^^^^^^^^ help: replace the closure with the function itself: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Path` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> lib-link/src/link/path.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `i32::abs()` to usize [INFO] [stdout] --> lib-link/src/braid.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | self.0.abs() as usize [INFO] [stdout] | ^^^^^^^^^^^^ help: replace with: `self.0.unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Braid` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> lib-link/src/braid.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn len(&self) -> usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `impl std::iter::Iterator` [INFO] [stdout] --> lib-link/src/util/jones.rs:18:23 [INFO] [stdout] | [INFO] [stdout] 18 | let body = P::sum(State::generate(n).into_iter().map(|s| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `State::generate(n)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:254:6 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, T> Rem<&'b Ratio> for &'a Ratio [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:254:6 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, T> Rem<&'b Ratio> for &'a Ratio [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] 254 - impl<'a, 'b, T> Rem<&'b Ratio> for &'a Ratio [INFO] [stdout] 254 + impl<'b, T> Rem<&'b Ratio> for &Ratio [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:254:10 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, T> Rem<&'b Ratio> for &'a Ratio [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:454:20 [INFO] [stdout] | [INFO] [stdout] 454 | assert_eq!(&a + &o, a); [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] 454 - assert_eq!(&a + &o, a); [INFO] [stdout] 454 + assert_eq!(a + o, a); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:455:20 [INFO] [stdout] | [INFO] [stdout] 455 | assert_eq!(&o + &a, a); [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] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 455 - assert_eq!(&o + &a, a); [INFO] [stdout] 455 + assert_eq!(o + a, a); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:488:20 [INFO] [stdout] | [INFO] [stdout] 488 | assert_eq!(&a - &o, a); [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] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 488 - assert_eq!(&a - &o, a); [INFO] [stdout] 488 + assert_eq!(a - o, a); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:489:20 [INFO] [stdout] | [INFO] [stdout] 489 | assert_eq!(&o - &a, -a); [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] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 489 - assert_eq!(&o - &a, -a); [INFO] [stdout] 489 + assert_eq!(o - a, -a); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:507:20 [INFO] [stdout] | [INFO] [stdout] 507 | assert_eq!(&a * &e, a); [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] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 507 - assert_eq!(&a * &e, a); [INFO] [stdout] 507 + assert_eq!(a * e, a); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:508:20 [INFO] [stdout] | [INFO] [stdout] 508 | assert_eq!(&e * &a, a); [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] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 508 - assert_eq!(&e * &a, a); [INFO] [stdout] 508 + assert_eq!(e * a, a); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:512:20 [INFO] [stdout] | [INFO] [stdout] 512 | assert_eq!(&a * &e, -a); [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] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 512 - assert_eq!(&a * &e, -a); [INFO] [stdout] 512 + assert_eq!(a * e, -a); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:513:20 [INFO] [stdout] | [INFO] [stdout] 513 | assert_eq!(&e * &a, -a); [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] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 513 - assert_eq!(&e * &a, -a); [INFO] [stdout] 513 + assert_eq!(e * a, -a); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:517:20 [INFO] [stdout] | [INFO] [stdout] 517 | assert_eq!(&a * &o, Ratio::zero()); [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] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 517 - assert_eq!(&a * &o, Ratio::zero()); [INFO] [stdout] 517 + assert_eq!(a * o, Ratio::zero()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> lib-core/src/types/num/ratio.rs:518:20 [INFO] [stdout] | [INFO] [stdout] 518 | assert_eq!(&o * &a, Ratio::zero()); [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] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 518 - assert_eq!(&o * &a, Ratio::zero()); [INFO] [stdout] 518 + assert_eq!(o * a, Ratio::zero()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `FF2` which implements the `Copy` trait [INFO] [stdout] --> lib-core/src/types/num/f2.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | self.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:80:6 [INFO] [stdout] | [INFO] [stdout] 80 | impl<'a, 'b> Add<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/f2.rs:80:6 [INFO] [stdout] | [INFO] [stdout] 80 | impl<'a, 'b> Add<&'b FF2> for &'a FF2 { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 80 - impl<'a, 'b> Add<&'b FF2> for &'a FF2 { [INFO] [stdout] 80 + impl<'b> Add<&'b FF2> for &FF2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:80:10 [INFO] [stdout] | [INFO] [stdout] 80 | impl<'a, 'b> Add<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:88:6 [INFO] [stdout] | [INFO] [stdout] 88 | impl<'a, 'b> Sub<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/f2.rs:88:6 [INFO] [stdout] | [INFO] [stdout] 88 | impl<'a, 'b> Sub<&'b FF2> for &'a FF2 { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 88 - impl<'a, 'b> Sub<&'b FF2> for &'a FF2 { [INFO] [stdout] 88 + impl<'b> Sub<&'b FF2> for &FF2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:88:10 [INFO] [stdout] | [INFO] [stdout] 88 | impl<'a, 'b> Sub<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:96:6 [INFO] [stdout] | [INFO] [stdout] 96 | impl<'a, 'b> Mul<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/f2.rs:96:6 [INFO] [stdout] | [INFO] [stdout] 96 | impl<'a, 'b> Mul<&'b FF2> for &'a FF2 { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 96 - impl<'a, 'b> Mul<&'b FF2> for &'a FF2 { [INFO] [stdout] 96 + impl<'b> Mul<&'b FF2> for &FF2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:96:10 [INFO] [stdout] | [INFO] [stdout] 96 | impl<'a, 'b> Mul<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:104:6 [INFO] [stdout] | [INFO] [stdout] 104 | impl<'a, 'b> Div<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/f2.rs:104:6 [INFO] [stdout] | [INFO] [stdout] 104 | impl<'a, 'b> Div<&'b FF2> for &'a FF2 { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 104 - impl<'a, 'b> Div<&'b FF2> for &'a FF2 { [INFO] [stdout] 104 + impl<'b> Div<&'b FF2> for &FF2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `FF2` which implements the `Copy` trait [INFO] [stdout] --> lib-core/src/types/num/f2.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | self.clone() [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:104:10 [INFO] [stdout] | [INFO] [stdout] 104 | impl<'a, 'b> Div<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:113:6 [INFO] [stdout] | [INFO] [stdout] 113 | impl<'a, 'b> Rem<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/f2.rs:113:6 [INFO] [stdout] | [INFO] [stdout] 113 | impl<'a, 'b> Rem<&'b FF2> for &'a FF2 { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 113 - impl<'a, 'b> Rem<&'b FF2> for &'a FF2 { [INFO] [stdout] 113 + impl<'b> Rem<&'b FF2> for &FF2 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/f2.rs:113:10 [INFO] [stdout] | [INFO] [stdout] 113 | impl<'a, 'b> Rem<&'b FF2> for &'a FF2 { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> lib-core/src/types/num/f2.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | assert_eq!(a.0, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 192 - assert_eq!(a.0, false); [INFO] [stdout] 192 + assert!(!a.0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> lib-core/src/types/num/f2.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | assert_eq!(a.0, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 195 - assert_eq!(a.0, true); [INFO] [stdout] 195 + assert!(a.0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> lib-core/src/types/num/f2.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | assert_eq!(a.0, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 198 - assert_eq!(a.0, false); [INFO] [stdout] 198 + assert!(!a.0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ff.rs:101:6 [INFO] [stdout] | [INFO] [stdout] 101 | impl<'a, 'b, const p: I> Div<&'b FF

> for &'a FF

{ [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/ff.rs:101:6 [INFO] [stdout] | [INFO] [stdout] 101 | impl<'a, 'b, const p: I> Div<&'b FF

> for &'a FF

{ [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 101 - impl<'a, 'b, const p: I> Div<&'b FF

> for &'a FF

{ [INFO] [stdout] 101 + impl<'b, const p: I> Div<&'b FF

> for &FF

{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ff.rs:101:10 [INFO] [stdout] | [INFO] [stdout] 101 | impl<'a, 'b, const p: I> Div<&'b FF

> for &'a FF

{ [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ff.rs:110:6 [INFO] [stdout] | [INFO] [stdout] 110 | impl<'a, 'b, const p: I> Rem<&'b FF

> for &'a FF

{ [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/ff.rs:110:6 [INFO] [stdout] | [INFO] [stdout] 110 | impl<'a, 'b, const p: I> Rem<&'b FF

> for &'a FF

{ [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 110 - impl<'a, 'b, const p: I> Rem<&'b FF

> for &'a FF

{ [INFO] [stdout] 110 + impl<'b, const p: I> Rem<&'b FF

> for &FF

{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/ff.rs:110:10 [INFO] [stdout] | [INFO] [stdout] 110 | impl<'a, 'b, const p: I> Rem<&'b FF

> for &'a FF

{ [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:197:6 [INFO] [stdout] | [INFO] [stdout] 197 | impl<'a, 'b, I, const D: i32> Mul<&'b QuadInt> for &'a QuadInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/qint.rs:197:6 [INFO] [stdout] | [INFO] [stdout] 197 | impl<'a, 'b, I, const D: i32> Mul<&'b QuadInt> for &'a QuadInt [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 197 - impl<'a, 'b, I, const D: i32> Mul<&'b QuadInt> for &'a QuadInt [INFO] [stdout] 197 + impl<'b, I, const D: i32> Mul<&'b QuadInt> for &QuadInt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:197:10 [INFO] [stdout] | [INFO] [stdout] 197 | impl<'a, 'b, I, const D: i32> Mul<&'b QuadInt> for &'a QuadInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:264:6 [INFO] [stdout] | [INFO] [stdout] 264 | impl<'a, 'b, I> Div<&'b GaussInt> for &'a GaussInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/qint.rs:264:6 [INFO] [stdout] | [INFO] [stdout] 264 | impl<'a, 'b, I> Div<&'b GaussInt> for &'a GaussInt [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 264 - impl<'a, 'b, I> Div<&'b GaussInt> for &'a GaussInt [INFO] [stdout] 264 + impl<'b, I> Div<&'b GaussInt> for &GaussInt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:264:10 [INFO] [stdout] | [INFO] [stdout] 264 | impl<'a, 'b, I> Div<&'b GaussInt> for &'a GaussInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:274:6 [INFO] [stdout] | [INFO] [stdout] 274 | impl<'a, 'b, I> Rem<&'b GaussInt> for &'a GaussInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/qint.rs:274:6 [INFO] [stdout] | [INFO] [stdout] 274 | impl<'a, 'b, I> Rem<&'b GaussInt> for &'a GaussInt [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 274 - impl<'a, 'b, I> Rem<&'b GaussInt> for &'a GaussInt [INFO] [stdout] 274 + impl<'b, I> Rem<&'b GaussInt> for &GaussInt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:274:10 [INFO] [stdout] | [INFO] [stdout] 274 | impl<'a, 'b, I> Rem<&'b GaussInt> for &'a GaussInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:308:6 [INFO] [stdout] | [INFO] [stdout] 308 | impl<'a, 'b, I> Div<&'b EisenInt> for &'a EisenInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/qint.rs:308:6 [INFO] [stdout] | [INFO] [stdout] 308 | impl<'a, 'b, I> Div<&'b EisenInt> for &'a EisenInt [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 308 - impl<'a, 'b, I> Div<&'b EisenInt> for &'a EisenInt [INFO] [stdout] 308 + impl<'b, I> Div<&'b EisenInt> for &EisenInt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:308:10 [INFO] [stdout] | [INFO] [stdout] 308 | impl<'a, 'b, I> Div<&'b EisenInt> for &'a EisenInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:318:6 [INFO] [stdout] | [INFO] [stdout] 318 | impl<'a, 'b, I> Rem<&'b EisenInt> for &'a EisenInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-core/src/types/num/qint.rs:318:6 [INFO] [stdout] | [INFO] [stdout] 318 | impl<'a, 'b, I> Rem<&'b EisenInt> for &'a EisenInt [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 318 - impl<'a, 'b, I> Rem<&'b EisenInt> for &'a EisenInt [INFO] [stdout] 318 + impl<'b, I> Rem<&'b EisenInt> for &EisenInt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-core/src/types/num/qint.rs:318:10 [INFO] [stdout] | [INFO] [stdout] 318 | impl<'a, 'b, I> Rem<&'b EisenInt> for &'a EisenInt [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> lib-core/src/types/lc/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | mod lc; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/lc/lc.rs:136:44 [INFO] [stdout] | [INFO] [stdout] 136 | self.into_iter().filter(|(x, _)| f(&x)).collect() [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> lib-core/src/types/lc/lc.rs:207:25 [INFO] [stdout] | [INFO] [stdout] 207 | Self::from_iter(value.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:152:20 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 207 - Self::from_iter(value.into_iter()) [INFO] [stdout] 207 + Self::from_iter(value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `+` in `MulAssign` impl [INFO] [stdout] --> lib-core/src/types/poly/var.rs:69:16 [INFO] [stdout] | [INFO] [stdout] 69 | self.0 += &rhs.0 // x^i * x^j = x^{i+j} [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stdout] = note: `#[warn(clippy::suspicious_op_assign_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `-` in `DivAssign` impl [INFO] [stdout] --> lib-core/src/types/poly/var.rs:77:16 [INFO] [stdout] | [INFO] [stdout] 77 | self.0 -= &rhs.0 // x^i * x^j = x^{i+j} [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/var2.rs:85:28 [INFO] [stdout] | [INFO] [stdout] 85 | if !r_all.is_match(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/var2.rs:91:34 [INFO] [stdout] | [INFO] [stdout] 91 | for c in r.captures_iter(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/var3.rs:87:28 [INFO] [stdout] | [INFO] [stdout] 87 | if !r_all.is_match(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/var3.rs:93:34 [INFO] [stdout] | [INFO] [stdout] 93 | for c in r.captures_iter(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `BuildHasher::hash_one` [INFO] [stdout] --> lib-core/src/types/poly/mdeg.rs:241:13 [INFO] [stdout] | [INFO] [stdout] 241 | hasher.finish() [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_hash_one [INFO] [stdout] = note: `#[warn(clippy::manual_hash_one)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 239 ~ [INFO] [stdout] 240 ~ [INFO] [stdout] 241 ~ state.hash_one(&d) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/mvar.rs:92:50 [INFO] [stdout] | [INFO] [stdout] 92 | if !Regex::new(&p_all).unwrap().is_match(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-core/src/types/poly/mvar.rs:99:34 [INFO] [stdout] | [INFO] [stdout] 99 | for c in r.captures_iter(&s) { [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `+` in `MulAssign` impl [INFO] [stdout] --> lib-core/src/types/poly/mvar.rs:116:16 [INFO] [stdout] | [INFO] [stdout] 116 | self.0 += &rhs.0 // x^i * x^j = x^{i+j} [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `-` in `DivAssign` impl [INFO] [stdout] --> lib-core/src/types/poly/mvar.rs:124:16 [INFO] [stdout] | [INFO] [stdout] 124 | self.0 -= &rhs.0 // x^i * x^j = x^{i+j} [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> lib-core/src/types/poly/mod.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | mod poly; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> lib-core/src/types/poly/h_poly.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | return [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] 113 - } else if rhs.is_zero() { [INFO] [stdout] 114 - return [INFO] [stdout] 113 + } else if rhs.is_zero() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> lib-core/src/types/poly/h_poly.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | return [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 128 - } else if rhs.is_zero() { [INFO] [stdout] 129 - return [INFO] [stdout] 128 + } else if rhs.is_zero() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> lib-core/src/traits/tex.rs:26:34 [INFO] [stdout] | [INFO] [stdout] 26 | format!("${}$", s.to_string()) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `KeyedUnionFind` [INFO] [stdout] --> lib-core/src/misc/union_find.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | / pub fn new() -> Self { [INFO] [stdout] 64 | | Self { inner: UnionFind::new(0), keys: vec![], dict: HashMap::new() } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 62 + impl Default for KeyedUnionFind [INFO] [stdout] 63 + where X: Eq + Hash [INFO] [stdout] 64 + { [INFO] [stdout] 65 + fn default() -> Self { [INFO] [stdout] 66 + Self::new() [INFO] [stdout] 67 + } [INFO] [stdout] 68 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> lib-core/src/misc/union_find.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 129 | let x = Rc::into_inner(x).unwrap(); [INFO] [stdout] | ----------------------------------- unnecessary `let` binding [INFO] [stdout] 130 | x [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] 129 ~ [INFO] [stdout] 130 ~ Rc::into_inner(x).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> lib-core/src/util/format.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | format!("{r}") [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider using `.to_string()`: `r.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SyncCounter` [INFO] [stdout] --> lib-core/src/util/sync.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | / pub fn new() -> Self { [INFO] [stdout] 9 | | let count = Mutex::new(0); [INFO] [stdout] 10 | | Self { count } [INFO] [stdout] 11 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 7 + impl Default for SyncCounter { [INFO] [stdout] 8 + fn default() -> Self { [INFO] [stdout] 9 + Self::new() [INFO] [stdout] 10 + } [INFO] [stdout] 11 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking sprs v0.11.4 [INFO] [stderr] Checking nalgebra v0.33.2 [INFO] [stderr] Checking nalgebra-sparse v0.10.0 [INFO] [stderr] Checking yui-matrix v0.4.0 (/opt/rustwide/workdir/lib-matrix) [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-matrix/src/dense/mat.rs:190:6 [INFO] [stdout] | [INFO] [stdout] 190 | impl<'a, 'b, R> Mul<&'b Mat> for &'a Mat [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-matrix/src/dense/mat.rs:190:6 [INFO] [stdout] | [INFO] [stdout] 190 | impl<'a, 'b, R> Mul<&'b Mat> for &'a Mat [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] 190 - impl<'a, 'b, R> Mul<&'b Mat> for &'a Mat [INFO] [stdout] 190 + impl<'b, R> Mul<&'b Mat> for &Mat [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-matrix/src/dense/mat.rs:190:10 [INFO] [stdout] | [INFO] [stdout] 190 | impl<'a, 'b, R> Mul<&'b Mat> for &'a Mat [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> lib-matrix/src/dense/snf.rs:368:17 [INFO] [stdout] | [INFO] [stdout] 368 | let r = (0..n).filter(|&i| [INFO] [stdout] | _________________^ [INFO] [stdout] 369 | | self.target[(i, i)].is_zero() [INFO] [stdout] 370 | | ).next().unwrap_or(n); [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `dense::mat::Mat` [INFO] [stdout] --> lib-matrix/src/dense/lll.rs:312:23 [INFO] [stdout] | [INFO] [stdout] 312 | self.lambda = Mat::from(l); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider removing `Mat::from()`: `l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-matrix/src/sparse/sp_vec.rs:254:6 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, R> Mul<&'b SpVec> for &'a SpMat [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-matrix/src/sparse/sp_vec.rs:254:10 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, R> Mul<&'b SpVec> for &'a SpMat [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-matrix/src/sparse/sp_vec.rs:254:6 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, R> Mul<&'b SpVec> for &'a SpMat [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 254 - impl<'a, 'b, R> Mul<&'b SpVec> for &'a SpMat [INFO] [stdout] 254 + impl<'b, R> Mul<&'b SpVec> for &SpMat [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> lib-matrix/src/sparse/pivot.rs:270:20 [INFO] [stdout] | [INFO] [stdout] 270 | if row_count % LOG_THRESHOLD == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `row_count.is_multiple_of(LOG_THRESHOLD)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-matrix/src/sparse/pivot.rs:293:27 [INFO] [stdout] | [INFO] [stdout] 293 | w.update_diff(&loc_pivots, &pivots); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `loc_pivots` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> lib-matrix/src/sparse/triang.rs:119:26 [INFO] [stdout] | [INFO] [stdout] 119 | if (c > 0 && c % LOG_THRESHOLD == 0) || c == k { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `c.is_multiple_of(LOG_THRESHOLD)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:20:44 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn dir_sum_indices(a: &SpMat) -> Option<(Vec>, Vec>)> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | let res: Vec>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 78 | res = u.into_inner().unwrap().group(); [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 `res` here [INFO] [stdout] | [INFO] [stdout] 64 ~ [INFO] [stdout] 65 | [INFO] [stdout] ... [INFO] [stdout] 77 | [INFO] [stdout] 78 ~ let res: Vec> = u.into_inner().unwrap().group(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:116:26 [INFO] [stdout] | [INFO] [stdout] 116 | match usize::cmp(&i1, &i2) { [INFO] [stdout] | ^^^ help: change this to: `i1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:116:31 [INFO] [stdout] | [INFO] [stdout] 116 | match usize::cmp(&i1, &i2) { [INFO] [stdout] | ^^^ help: change this to: `i2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:148:36 [INFO] [stdout] | [INFO] [stdout] 148 | fn decomp_by(a: SpMat, rows: &Vec>, cols: &Vec>, p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 148 - fn decomp_by(a: SpMat, rows: &Vec>, cols: &Vec>, p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] 148 + fn decomp_by(a: SpMat, rows: &[Vec], cols: &Vec>, p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:148:60 [INFO] [stdout] | [INFO] [stdout] 148 | fn decomp_by(a: SpMat, rows: &Vec>, cols: &Vec>, p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 148 - fn decomp_by(a: SpMat, rows: &Vec>, cols: &Vec>, p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] 148 + fn decomp_by(a: SpMat, rows: &Vec>, cols: &[Vec], p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:153:36 [INFO] [stdout] | [INFO] [stdout] 153 | let row_inds = rows.iter().map(|r| AHashSet::from_iter(r)).collect_vec(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `AHashSet::from_iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> lib-matrix/src/sparse/pivot.rs:372:16 [INFO] [stdout] | [INFO] [stdout] 372 | fn cols_in(&self, i: Row) -> Iter { [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] 372 | fn cols_in(&self, i: Row) -> Iter<'_, Col> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking yui-homology v0.4.0 (/opt/rustwide/workdir/lib-homology) [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-matrix/src/dense/mat.rs:190:6 [INFO] [stdout] | [INFO] [stdout] 190 | impl<'a, 'b, R> Mul<&'b Mat> for &'a Mat [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-matrix/src/dense/mat.rs:190:6 [INFO] [stdout] | [INFO] [stdout] 190 | impl<'a, 'b, R> Mul<&'b Mat> for &'a Mat [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] 190 - impl<'a, 'b, R> Mul<&'b Mat> for &'a Mat [INFO] [stdout] 190 + impl<'b, R> Mul<&'b Mat> for &Mat [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-matrix/src/dense/mat.rs:190:10 [INFO] [stdout] | [INFO] [stdout] 190 | impl<'a, 'b, R> Mul<&'b Mat> for &'a Mat [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> lib-homology/src/grid/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | mod grid; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-homology/src/conc/summand.rs:116:38 [INFO] [stdout] | [INFO] [stdout] 116 | self.raw_gens.iter().map(|x| f(x)).collect(), [INFO] [stdout] | ^^^^^^^^ help: replace the closure with the function itself: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> lib-homology/src/conc/complex.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | d_map: Arc) -> Lc + Send + Sync>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> lib-homology/src/conc/complex.rs:55:28 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn raw_d(&self) -> Arc) -> Lc + Send + Sync> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> lib-matrix/src/dense/snf.rs:368:17 [INFO] [stdout] | [INFO] [stdout] 368 | let r = (0..n).filter(|&i| [INFO] [stdout] | _________________^ [INFO] [stdout] 369 | | self.target[(i, i)].is_zero() [INFO] [stdout] 370 | | ).next().unwrap_or(n); [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> lib-homology/src/conc/chain_map.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | map: Arc) -> Lc + Send + Sync>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-homology/src/conc/chain_map.rs:59:23 [INFO] [stdout] | [INFO] [stdout] 59 | (self.map)(i, &z) [INFO] [stdout] | ^^ help: change this to: `z` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> lib-homology/src/conc/homology.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | h.tors().iter().cloned().collect(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] = note: `#[warn(clippy::iter_cloned_collect)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> lib-homology/src/generic/complex.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 39 | let dz = summands[i + d_deg].devectorize(&dv); [INFO] [stdout] | ---------------------------------------------- unnecessary `let` binding [INFO] [stdout] 40 | dz [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] 39 ~ [INFO] [stdout] 40 ~ summands[i + d_deg].devectorize(&dv) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `dense::mat::Mat` [INFO] [stdout] --> lib-matrix/src/dense/lll.rs:312:23 [INFO] [stdout] | [INFO] [stdout] 312 | self.lambda = Mat::from(l); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider removing `Mat::from()`: `l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking yui-kh v0.4.0 (/opt/rustwide/workdir/lib-kh) [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> lib-homology/src/grid/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | mod grid; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-homology/src/conc/summand.rs:116:38 [INFO] [stdout] | [INFO] [stdout] 116 | self.raw_gens.iter().map(|x| f(x)).collect(), [INFO] [stdout] | ^^^^^^^^ help: replace the closure with the function itself: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> lib-homology/src/conc/complex.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | d_map: Arc) -> Lc + Send + Sync>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> lib-homology/src/conc/complex.rs:55:28 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn raw_d(&self) -> Arc) -> Lc + Send + Sync> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> lib-homology/src/conc/chain_map.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | map: Arc) -> Lc + Send + Sync>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-homology/src/conc/chain_map.rs:59:23 [INFO] [stdout] | [INFO] [stdout] 59 | (self.map)(i, &z) [INFO] [stdout] | ^^ help: change this to: `z` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `EnumGen` which implements the `Copy` trait [INFO] [stdout] --> lib-homology/src/conc/chain_map.rs:185:30 [INFO] [stdout] | [INFO] [stdout] 185 | let x = T::from_left(s2[0].raw_gen(0).clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*s2[0].raw_gen(0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `EnumGen` which implements the `Copy` trait [INFO] [stdout] --> lib-homology/src/conc/chain_map.rs:186:30 [INFO] [stdout] | [INFO] [stdout] 186 | let y = T::from_left(s2[1].raw_gen(0).clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*s2[1].raw_gen(0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `EnumGen` which implements the `Copy` trait [INFO] [stdout] --> lib-homology/src/conc/chain_map.rs:187:31 [INFO] [stdout] | [INFO] [stdout] 187 | let z = T::from_right(d3[1].raw_gen(0).clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*d3[1].raw_gen(0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `EitherGen, EnumGen>` which implements the `Copy` trait [INFO] [stdout] --> lib-homology/src/conc/chain_map.rs:193:38 [INFO] [stdout] | [INFO] [stdout] 193 | let dx = cone.d(1, &Lc::from(x.clone())); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `EitherGen, EnumGen>` which implements the `Copy` trait [INFO] [stdout] --> lib-homology/src/conc/chain_map.rs:196:38 [INFO] [stdout] | [INFO] [stdout] 196 | let dy = cone.d(2, &Lc::from(y.clone())); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `EitherGen, EnumGen>` which implements the `Copy` trait [INFO] [stdout] --> lib-homology/src/conc/chain_map.rs:203:38 [INFO] [stdout] | [INFO] [stdout] 203 | let dz = cone.d(1, &Lc::from(z.clone())); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `z` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> lib-homology/src/conc/homology.rs:25:21 [INFO] [stdout] | [INFO] [stdout] 25 | h.tors().iter().cloned().collect(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] = note: `#[warn(clippy::iter_cloned_collect)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> lib-homology/src/generic/complex.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 39 | let dz = summands[i + d_deg].devectorize(&dv); [INFO] [stdout] | ---------------------------------------------- unnecessary `let` binding [INFO] [stdout] 40 | dz [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] 39 ~ [INFO] [stdout] 40 ~ summands[i + d_deg].devectorize(&dv) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Ratio` which implements the `Copy` trait [INFO] [stdout] --> lib-matrix/src/sparse/sp_mat.rs:481:20 [INFO] [stdout] | [INFO] [stdout] 481 | (0, 0, vals[0].clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `vals[0]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Ratio` which implements the `Copy` trait [INFO] [stdout] --> lib-matrix/src/sparse/sp_mat.rs:482:20 [INFO] [stdout] | [INFO] [stdout] 482 | (0, 1, vals[2].clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `vals[2]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Ratio` which implements the `Copy` trait [INFO] [stdout] --> lib-matrix/src/sparse/sp_mat.rs:483:20 [INFO] [stdout] | [INFO] [stdout] 483 | (1, 0, vals[1].clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `vals[1]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Ratio` which implements the `Copy` trait [INFO] [stdout] --> lib-matrix/src/sparse/sp_mat.rs:484:20 [INFO] [stdout] | [INFO] [stdout] 484 | (1, 1, vals[3].clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `vals[3]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-matrix/src/sparse/sp_vec.rs:254:6 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, R> Mul<&'b SpVec> for &'a SpMat [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> lib-matrix/src/sparse/sp_vec.rs:254:10 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, R> Mul<&'b SpVec> for &'a SpMat [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-matrix/src/sparse/sp_vec.rs:254:6 [INFO] [stdout] | [INFO] [stdout] 254 | impl<'a, 'b, R> Mul<&'b SpVec> for &'a SpMat [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 254 - impl<'a, 'b, R> Mul<&'b SpVec> for &'a SpMat [INFO] [stdout] 254 + impl<'b, R> Mul<&'b SpVec> for &SpMat [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> lib-matrix/src/sparse/pivot.rs:270:20 [INFO] [stdout] | [INFO] [stdout] 270 | if row_count % LOG_THRESHOLD == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `row_count.is_multiple_of(LOG_THRESHOLD)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-matrix/src/sparse/pivot.rs:293:27 [INFO] [stdout] | [INFO] [stdout] 293 | w.update_diff(&loc_pivots, &pivots); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `loc_pivots` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> lib-matrix/src/sparse/triang.rs:119:26 [INFO] [stdout] | [INFO] [stdout] 119 | if (c > 0 && c % LOG_THRESHOLD == 0) || c == k { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `c.is_multiple_of(LOG_THRESHOLD)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:20:44 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn dir_sum_indices(a: &SpMat) -> Option<(Vec>, Vec>)> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | let res: Vec>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 78 | res = u.into_inner().unwrap().group(); [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 `res` here [INFO] [stdout] | [INFO] [stdout] 64 ~ [INFO] [stdout] 65 | [INFO] [stdout] ... [INFO] [stdout] 77 | [INFO] [stdout] 78 ~ let res: Vec> = u.into_inner().unwrap().group(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:116:26 [INFO] [stdout] | [INFO] [stdout] 116 | match usize::cmp(&i1, &i2) { [INFO] [stdout] | ^^^ help: change this to: `i1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:116:31 [INFO] [stdout] | [INFO] [stdout] 116 | match usize::cmp(&i1, &i2) { [INFO] [stdout] | ^^^ help: change this to: `i2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:148:36 [INFO] [stdout] | [INFO] [stdout] 148 | fn decomp_by(a: SpMat, rows: &Vec>, cols: &Vec>, p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 148 - fn decomp_by(a: SpMat, rows: &Vec>, cols: &Vec>, p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] 148 + fn decomp_by(a: SpMat, rows: &[Vec], cols: &Vec>, p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:148:60 [INFO] [stdout] | [INFO] [stdout] 148 | fn decomp_by(a: SpMat, rows: &Vec>, cols: &Vec>, p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 148 - fn decomp_by(a: SpMat, rows: &Vec>, cols: &Vec>, p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] 148 + fn decomp_by(a: SpMat, rows: &Vec>, cols: &[Vec], p: &PermOwned, q: &PermOwned) -> Vec> [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-matrix/src/sparse/decomp.rs:153:36 [INFO] [stdout] | [INFO] [stdout] 153 | let row_inds = rows.iter().map(|r| AHashSet::from_iter(r)).collect_vec(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `AHashSet::from_iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> lib-matrix/src/sparse/pivot.rs:372:16 [INFO] [stdout] | [INFO] [stdout] 372 | fn cols_in(&self, i: Row) -> Iter { [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] 372 | fn cols_in(&self, i: Row) -> Iter<'_, Col> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> lib-kh/src/kh/gen.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | format!("A") [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using `.to_string()`: `"A".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-kh/src/kh/gen.rs:86:27 [INFO] [stdout] | [INFO] [stdout] 86 | self.0.iter().map(|b| [INFO] [stdout] | ___________________________^ [INFO] [stdout] 87 | | KhGen::from_bit(b) [INFO] [stdout] | |______________________________^ help: replace the closure with the associated function itself: `KhGen::from_bit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `KhTensor` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/kh/gen.rs:136:29 [INFO] [stdout] | [INFO] [stdout] 136 | let init = Lc::from(self.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/homology.rs:26:32 [INFO] [stdout] | [INFO] [stdout] 26 | let c = KhComplex::new(&l, h, t, reduced); [INFO] [stdout] | ^^ help: change this to: `l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/homology.rs:31:44 [INFO] [stdout] | [INFO] [stdout] 31 | let c = KhComplex::new_no_simplify(&l, h, t, reduced); [INFO] [stdout] | ^^ help: change this to: `l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> lib-kh/src/kh/internal/v1/cube.rs:77:21 [INFO] [stdout] | [INFO] [stdout] 77 | fn diff(c1: &Vec, c2: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 77 - fn diff(c1: &Vec, c2: &Vec) -> Vec { [INFO] [stdout] 77 + fn diff(c1: &[Path], c2: &Vec) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> lib-kh/src/kh/internal/v1/cube.rs:77:37 [INFO] [stdout] | [INFO] [stdout] 77 | fn diff(c1: &Vec, c2: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 77 - fn diff(c1: &Vec, c2: &Vec) -> Vec { [INFO] [stdout] 77 + fn diff(c1: &Vec, c2: &[Path]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TngComp` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn len(&self) -> usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> lib-kh/src/kh/internal/v2/cob.rs:221:9 [INFO] [stdout] | [INFO] [stdout] 221 | self.genus % 2 == 0 && [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `self.genus.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:46:6 [INFO] [stdout] | [INFO] [stdout] 46 | impl<'a> Add for &'a TngKey { [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] 46 - impl<'a> Add for &'a TngKey { [INFO] [stdout] 46 + impl Add for &TngKey { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:56:6 [INFO] [stdout] | [INFO] [stdout] 56 | impl<'a> Add for &'a TngKey { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 56 - impl<'a> Add for &'a TngKey { [INFO] [stdout] 56 + impl Add for &TngKey { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `TngKey` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:114:14 [INFO] [stdout] | [INFO] [stdout] 114 | (k.clone(), cob.convert_edges(&f)) [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:378:63 [INFO] [stdout] | [INFO] [stdout] 378 | let sdl = LcCob::from(Cob::from(CobComp::sdl_from(&x))); [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:392:34 [INFO] [stdout] | [INFO] [stdout] 392 | new.connect_vertices(&self, &other, i); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:393:31 [INFO] [stdout] | [INFO] [stdout] 393 | new.connect_edges(&self, &other, i - 1); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:438:34 [INFO] [stdout] | [INFO] [stdout] 438 | let v0 = left.vertex(&k0); [INFO] [stdout] | ^^^ help: change this to: `k0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:439:35 [INFO] [stdout] | [INFO] [stdout] 439 | let w0 = right.vertex(&l0); [INFO] [stdout] | ^^^ help: change this to: `l0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:442:41 [INFO] [stdout] | [INFO] [stdout] 442 | let e1 = left.keys_out_from(&k0).map(|k1| { [INFO] [stdout] | ^^^ help: change this to: `k0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:444:35 [INFO] [stdout] | [INFO] [stdout] 444 | let f = left.edge(&k0, k1); [INFO] [stdout] | ^^^ help: change this to: `k0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:449:42 [INFO] [stdout] | [INFO] [stdout] 449 | let e2 = right.keys_out_from(&l0).map(|l1| { [INFO] [stdout] | ^^^ help: change this to: `l0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:451:36 [INFO] [stdout] | [INFO] [stdout] 451 | let f = right.edge(&l0, l1); [INFO] [stdout] | ^^^ help: change this to: `l0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:710:40 [INFO] [stdout] | [INFO] [stdout] 710 | let base_pt = self.base_pt.map(|e| f(e)); [INFO] [stdout] | ^^^^^^^^ help: replace the closure with the function itself: `&f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `TngKey` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:714:22 [INFO] [stdout] | [INFO] [stdout] 714 | let k2 = k1.clone(); [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*k1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `let...else` may be rewritten with the `?` operator [INFO] [stdout] --> lib-kh/src/kh/internal/v2/builder.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | / let Some((i, _)) = self.crossings.iter().enumerate().max_by_key(|(_, x)| [INFO] [stdout] 119 | | self.count_connections(x) [INFO] [stdout] 120 | | ) else { [INFO] [stdout] 121 | | return None [INFO] [stdout] 122 | | }; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] help: replace it with [INFO] [stdout] | [INFO] [stdout] 118 ~ let (i, _) = self.crossings.iter().enumerate().max_by_key(|(_, x)| [INFO] [stdout] 119 + self.count_connections(x) [INFO] [stdout] 120 + )?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/builder.rs:200:43 [INFO] [stdout] | [INFO] [stdout] 200 | self.complex.connect_vertices(&left, &right, i); [INFO] [stdout] | ^^^^^ help: change this to: `left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/builder.rs:200:50 [INFO] [stdout] | [INFO] [stdout] 200 | self.complex.connect_vertices(&left, &right, i); [INFO] [stdout] | ^^^^^^ help: change this to: `right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/builder.rs:204:40 [INFO] [stdout] | [INFO] [stdout] 204 | self.complex.connect_edges(&left, &right, i); [INFO] [stdout] | ^^^^^ help: change this to: `left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/builder.rs:204:47 [INFO] [stdout] | [INFO] [stdout] 204 | self.complex.connect_edges(&left, &right, i); [INFO] [stdout] | ^^^^^^ help: change this to: `right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> lib-kh/src/khi/complex.rs:76:28 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn from_kh_complex<'a, F>(c: KhComplex, map: F) -> Self [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> lib-kh/src/khi/homology.rs:72:29 [INFO] [stdout] | [INFO] [stdout] 72 | c.canon_cycles().iter().cloned().collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] = note: `#[warn(clippy::iter_cloned_collect)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `KhChainGen` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/khi/internal/v1/cube.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | let x = x.clone(); [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `off_axis` [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:129:22 [INFO] [stdout] | [INFO] [stdout] 129 | for j in 0 .. i { [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] 129 - for j in 0 .. i { [INFO] [stdout] 129 + for in off_axis.iter().take(i) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:132:29 [INFO] [stdout] | [INFO] [stdout] 132 | u.union(&x, &y); [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:132:33 [INFO] [stdout] | [INFO] [stdout] 132 | u.union(&x, &y); [INFO] [stdout] | ^^ help: change this to: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.iter().next()` on an array [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:138:30 [INFO] [stdout] | [INFO] [stdout] 138 | if let Some(x) = next.iter().next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling: `next.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_next_slice [INFO] [stdout] = note: `#[warn(clippy::iter_next_slice)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:141:32 [INFO] [stdout] | [INFO] [stdout] 141 | res.extend(next.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 141 - res.extend(next.into_iter()); [INFO] [stdout] 141 + res.extend(next); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:148:84 [INFO] [stdout] | [INFO] [stdout] 148 | ...ts: Vec>) -> (TngComplex, TngComplex, AHashMap, Vec>) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:205:35 [INFO] [stdout] | [INFO] [stdout] 205 | self.inner.append_prepare(&x); [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:226:35 [INFO] [stdout] | [INFO] [stdout] 226 | self.inner.append_prepare(&x); [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:227:35 [INFO] [stdout] | [INFO] [stdout] 227 | self.inner.append_prepare(&tx); [INFO] [stdout] | ^^^ help: change this to: `tx` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:271:25 [INFO] [stdout] | [INFO] [stdout] 271 | keys.remove(&self.inv_key(&k)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `self.inv_key(&k)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:288:28 [INFO] [stdout] | [INFO] [stdout] 288 | if self.is_sym_key(&k) { [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:289:43 [INFO] [stdout] | [INFO] [stdout] 289 | let c = self.complex().vertex(&k).tng().comp(r); [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:292:41 [INFO] [stdout] | [INFO] [stdout] 292 | self.deloop_on_axis_sym(&k, r) [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:295:42 [INFO] [stdout] | [INFO] [stdout] 295 | self.deloop_on_axis_asym(&k, r) [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:299:34 [INFO] [stdout] | [INFO] [stdout] 299 | self.deloop_off_axis(&k, r) [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:417:41 [INFO] [stdout] | [INFO] [stdout] 417 | assert!(self.complex().has_edge(&i, &j)); [INFO] [stdout] | ^^ help: change this to: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:417:45 [INFO] [stdout] | [INFO] [stdout] 417 | assert!(self.complex().has_edge(&i, &j)); [INFO] [stdout] | ^^ help: change this to: `j` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `bool::then` in `filter_map` [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:443:41 [INFO] [stdout] | [INFO] [stdout] 443 | self.complex().keys_out_from(k).filter_map(|l| [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 444 | | self.is_equiv_inv_edge(k, l).then(|| { [INFO] [stdout] 445 | | let s = self.inner.edge_weight(k, l); [INFO] [stdout] 446 | | (l, s) [INFO] [stdout] 447 | | }) [INFO] [stdout] 448 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_bool_then [INFO] [stdout] = note: `#[warn(clippy::filter_map_bool_then)]` on by default [INFO] [stdout] help: use `filter` then `map` instead [INFO] [stdout] | [INFO] [stdout] 443 ~ self.complex().keys_out_from(k).filter(|&l| self.is_equiv_inv_edge(k, l)).map(|l| { [INFO] [stdout] 444 + let s = self.inner.edge_weight(k, l); [INFO] [stdout] 445 + (l, s) [INFO] [stdout] 446 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:496:30 [INFO] [stdout] | [INFO] [stdout] 496 | indices.contains(&i) [INFO] [stdout] | ^^ help: change this to: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:541:41 [INFO] [stdout] | [INFO] [stdout] 541 | self.complex().contains_key(&k) && [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:542:41 [INFO] [stdout] | [INFO] [stdout] 542 | self.complex().contains_key(&l) [INFO] [stdout] | ^^ help: change this to: `l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:573:13 [INFO] [stdout] | [INFO] [stdout] 572 | let tx = tk.as_gen(deg_shift); [INFO] [stdout] | ------------------------------ unnecessary `let` binding [INFO] [stdout] 573 | tx [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] 572 ~ [INFO] [stdout] 573 ~ tk.as_gen(deg_shift) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:594:23 [INFO] [stdout] | [INFO] [stdout] 594 | &self.key_map[&k] [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking ykh v0.4.0 (/opt/rustwide/workdir/bin-ykh) [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> bin-ykh/src/app/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | mod app; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> bin-ykh/src/app/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | mod app; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> bin-ykh/src/app/utils/helper.rs:101:10 [INFO] [stdout] | [INFO] [stdout] 101 | .create(true) [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] = note: `#[warn(clippy::suspicious_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> bin-ykh/src/app/utils/dispatch.rs:42:34 [INFO] [stdout] | [INFO] [stdout] 42 | pub(crate) fn poly_vars(c_value: &String) -> PolyVars { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 42 - pub(crate) fn poly_vars(c_value: &String) -> PolyVars { [INFO] [stdout] 42 + pub(crate) fn poly_vars(c_value: &str) -> PolyVars { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> lib-kh/src/kh/gen.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | format!("A") [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using `.to_string()`: `"A".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-kh/src/kh/gen.rs:86:27 [INFO] [stdout] | [INFO] [stdout] 86 | self.0.iter().map(|b| [INFO] [stdout] | ___________________________^ [INFO] [stdout] 87 | | KhGen::from_bit(b) [INFO] [stdout] | |______________________________^ help: replace the closure with the associated function itself: `KhGen::from_bit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `KhTensor` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/kh/gen.rs:136:29 [INFO] [stdout] | [INFO] [stdout] 136 | let init = Lc::from(self.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> bin-ykh/src/app/utils/helper.rs:101:10 [INFO] [stdout] | [INFO] [stdout] 101 | .create(true) [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] = note: `#[warn(clippy::suspicious_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> bin-ykh/src/app/utils/dispatch.rs:42:34 [INFO] [stdout] | [INFO] [stdout] 42 | pub(crate) fn poly_vars(c_value: &String) -> PolyVars { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 42 - pub(crate) fn poly_vars(c_value: &String) -> PolyVars { [INFO] [stdout] 42 + pub(crate) fn poly_vars(c_value: &str) -> PolyVars { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/homology.rs:26:32 [INFO] [stdout] | [INFO] [stdout] 26 | let c = KhComplex::new(&l, h, t, reduced); [INFO] [stdout] | ^^ help: change this to: `l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/homology.rs:31:44 [INFO] [stdout] | [INFO] [stdout] 31 | let c = KhComplex::new_no_simplify(&l, h, t, reduced); [INFO] [stdout] | ^^ help: change this to: `l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HPoly<'H', FF2>` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/kh/homology.rs:382:46 [INFO] [stdout] | [INFO] [stdout] 382 | assert_eq!(kh[(-2,-7)].tors(), &vec![h.clone()]); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `h` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HPoly<'H', FF2>` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/kh/homology.rs:384:46 [INFO] [stdout] | [INFO] [stdout] 384 | assert_eq!(kh[(-2,-5)].tors(), &vec![h.clone()]); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `h` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HPoly<'H', FF2>` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/kh/homology.rs:668:46 [INFO] [stdout] | [INFO] [stdout] 668 | assert_eq!(kh[(-2,-7)].tors(), &vec![h.clone()]); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `h` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `HPoly<'H', FF2>` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/kh/homology.rs:670:46 [INFO] [stdout] | [INFO] [stdout] 670 | assert_eq!(kh[(-2,-5)].tors(), &vec![h.clone()]); [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `h` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> lib-kh/src/kh/internal/v1/cube.rs:77:21 [INFO] [stdout] | [INFO] [stdout] 77 | fn diff(c1: &Vec, c2: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 77 - fn diff(c1: &Vec, c2: &Vec) -> Vec { [INFO] [stdout] 77 + fn diff(c1: &[Path], c2: &Vec) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> lib-kh/src/kh/internal/v1/cube.rs:77:37 [INFO] [stdout] | [INFO] [stdout] 77 | fn diff(c1: &Vec, c2: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 77 - fn diff(c1: &Vec, c2: &Vec) -> Vec { [INFO] [stdout] 77 + fn diff(c1: &Vec, c2: &[Path]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TngComp` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn len(&self) -> usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> lib-kh/src/kh/internal/v2/cob.rs:221:9 [INFO] [stdout] | [INFO] [stdout] 221 | self.genus % 2 == 0 && [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `self.genus.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:46:6 [INFO] [stdout] | [INFO] [stdout] 46 | impl<'a> Add for &'a TngKey { [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] 46 - impl<'a> Add for &'a TngKey { [INFO] [stdout] 46 + impl Add for &TngKey { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:56:6 [INFO] [stdout] | [INFO] [stdout] 56 | impl<'a> Add for &'a TngKey { [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] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 56 - impl<'a> Add for &'a TngKey { [INFO] [stdout] 56 + impl Add for &TngKey { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `TngKey` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:114:14 [INFO] [stdout] | [INFO] [stdout] 114 | (k.clone(), cob.convert_edges(&f)) [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:378:63 [INFO] [stdout] | [INFO] [stdout] 378 | let sdl = LcCob::from(Cob::from(CobComp::sdl_from(&x))); [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:392:34 [INFO] [stdout] | [INFO] [stdout] 392 | new.connect_vertices(&self, &other, i); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:393:31 [INFO] [stdout] | [INFO] [stdout] 393 | new.connect_edges(&self, &other, i - 1); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:438:34 [INFO] [stdout] | [INFO] [stdout] 438 | let v0 = left.vertex(&k0); [INFO] [stdout] | ^^^ help: change this to: `k0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:439:35 [INFO] [stdout] | [INFO] [stdout] 439 | let w0 = right.vertex(&l0); [INFO] [stdout] | ^^^ help: change this to: `l0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:442:41 [INFO] [stdout] | [INFO] [stdout] 442 | let e1 = left.keys_out_from(&k0).map(|k1| { [INFO] [stdout] | ^^^ help: change this to: `k0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:444:35 [INFO] [stdout] | [INFO] [stdout] 444 | let f = left.edge(&k0, k1); [INFO] [stdout] | ^^^ help: change this to: `k0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:449:42 [INFO] [stdout] | [INFO] [stdout] 449 | let e2 = right.keys_out_from(&l0).map(|l1| { [INFO] [stdout] | ^^^ help: change this to: `l0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:451:36 [INFO] [stdout] | [INFO] [stdout] 451 | let f = right.edge(&l0, l1); [INFO] [stdout] | ^^^ help: change this to: `l0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:710:40 [INFO] [stdout] | [INFO] [stdout] 710 | let base_pt = self.base_pt.map(|e| f(e)); [INFO] [stdout] | ^^^^^^^^ help: replace the closure with the function itself: `&f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `TngKey` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/kh/internal/v2/tng_complex.rs:714:22 [INFO] [stdout] | [INFO] [stdout] 714 | let k2 = k1.clone(); [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*k1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `let...else` may be rewritten with the `?` operator [INFO] [stdout] --> lib-kh/src/kh/internal/v2/builder.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | / let Some((i, _)) = self.crossings.iter().enumerate().max_by_key(|(_, x)| [INFO] [stdout] 119 | | self.count_connections(x) [INFO] [stdout] 120 | | ) else { [INFO] [stdout] 121 | | return None [INFO] [stdout] 122 | | }; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] help: replace it with [INFO] [stdout] | [INFO] [stdout] 118 ~ let (i, _) = self.crossings.iter().enumerate().max_by_key(|(_, x)| [INFO] [stdout] 119 + self.count_connections(x) [INFO] [stdout] 120 + )?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/builder.rs:200:43 [INFO] [stdout] | [INFO] [stdout] 200 | self.complex.connect_vertices(&left, &right, i); [INFO] [stdout] | ^^^^^ help: change this to: `left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/builder.rs:200:50 [INFO] [stdout] | [INFO] [stdout] 200 | self.complex.connect_vertices(&left, &right, i); [INFO] [stdout] | ^^^^^^ help: change this to: `right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/builder.rs:204:40 [INFO] [stdout] | [INFO] [stdout] 204 | self.complex.connect_edges(&left, &right, i); [INFO] [stdout] | ^^^^^ help: change this to: `left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/builder.rs:204:47 [INFO] [stdout] | [INFO] [stdout] 204 | self.complex.connect_edges(&left, &right, i); [INFO] [stdout] | ^^^^^^ help: change this to: `right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/kh/internal/v2/builder.rs:728:28 [INFO] [stdout] | [INFO] [stdout] 728 | assert!(c.d(0, &z).is_zero()); [INFO] [stdout] | ^^ help: change this to: `z` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> lib-kh/src/khi/complex.rs:76:28 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn from_kh_complex<'a, F>(c: KhComplex, map: F) -> Self [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> lib-kh/src/khi/homology.rs:72:29 [INFO] [stdout] | [INFO] [stdout] 72 | c.canon_cycles().iter().cloned().collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] = note: `#[warn(clippy::iter_cloned_collect)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `KhChainGen` which implements the `Copy` trait [INFO] [stdout] --> lib-kh/src/khi/internal/v1/cube.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | let x = x.clone(); [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `off_axis` [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:129:22 [INFO] [stdout] | [INFO] [stdout] 129 | for j in 0 .. i { [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] 129 - for j in 0 .. i { [INFO] [stdout] 129 + for in off_axis.iter().take(i) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:132:29 [INFO] [stdout] | [INFO] [stdout] 132 | u.union(&x, &y); [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:132:33 [INFO] [stdout] | [INFO] [stdout] 132 | u.union(&x, &y); [INFO] [stdout] | ^^ help: change this to: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.iter().next()` on an array [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:138:30 [INFO] [stdout] | [INFO] [stdout] 138 | if let Some(x) = next.iter().next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling: `next.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_next_slice [INFO] [stdout] = note: `#[warn(clippy::iter_next_slice)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:141:32 [INFO] [stdout] | [INFO] [stdout] 141 | res.extend(next.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 141 - res.extend(next.into_iter()); [INFO] [stdout] 141 + res.extend(next); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:148:84 [INFO] [stdout] | [INFO] [stdout] 148 | ...ts: Vec>) -> (TngComplex, TngComplex, AHashMap, Vec>) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:205:35 [INFO] [stdout] | [INFO] [stdout] 205 | self.inner.append_prepare(&x); [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:226:35 [INFO] [stdout] | [INFO] [stdout] 226 | self.inner.append_prepare(&x); [INFO] [stdout] | ^^ help: change this to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:227:35 [INFO] [stdout] | [INFO] [stdout] 227 | self.inner.append_prepare(&tx); [INFO] [stdout] | ^^^ help: change this to: `tx` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:271:25 [INFO] [stdout] | [INFO] [stdout] 271 | keys.remove(&self.inv_key(&k)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `self.inv_key(&k)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:288:28 [INFO] [stdout] | [INFO] [stdout] 288 | if self.is_sym_key(&k) { [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:289:43 [INFO] [stdout] | [INFO] [stdout] 289 | let c = self.complex().vertex(&k).tng().comp(r); [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:292:41 [INFO] [stdout] | [INFO] [stdout] 292 | self.deloop_on_axis_sym(&k, r) [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:295:42 [INFO] [stdout] | [INFO] [stdout] 295 | self.deloop_on_axis_asym(&k, r) [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:299:34 [INFO] [stdout] | [INFO] [stdout] 299 | self.deloop_off_axis(&k, r) [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:417:41 [INFO] [stdout] | [INFO] [stdout] 417 | assert!(self.complex().has_edge(&i, &j)); [INFO] [stdout] | ^^ help: change this to: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:417:45 [INFO] [stdout] | [INFO] [stdout] 417 | assert!(self.complex().has_edge(&i, &j)); [INFO] [stdout] | ^^ help: change this to: `j` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `bool::then` in `filter_map` [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:443:41 [INFO] [stdout] | [INFO] [stdout] 443 | self.complex().keys_out_from(k).filter_map(|l| [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 444 | | self.is_equiv_inv_edge(k, l).then(|| { [INFO] [stdout] 445 | | let s = self.inner.edge_weight(k, l); [INFO] [stdout] 446 | | (l, s) [INFO] [stdout] 447 | | }) [INFO] [stdout] 448 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_bool_then [INFO] [stdout] = note: `#[warn(clippy::filter_map_bool_then)]` on by default [INFO] [stdout] help: use `filter` then `map` instead [INFO] [stdout] | [INFO] [stdout] 443 ~ self.complex().keys_out_from(k).filter(|&l| self.is_equiv_inv_edge(k, l)).map(|l| { [INFO] [stdout] 444 + let s = self.inner.edge_weight(k, l); [INFO] [stdout] 445 + (l, s) [INFO] [stdout] 446 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:496:30 [INFO] [stdout] | [INFO] [stdout] 496 | indices.contains(&i) [INFO] [stdout] | ^^ help: change this to: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:541:41 [INFO] [stdout] | [INFO] [stdout] 541 | self.complex().contains_key(&k) && [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:542:41 [INFO] [stdout] | [INFO] [stdout] 542 | self.complex().contains_key(&l) [INFO] [stdout] | ^^ help: change this to: `l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:573:13 [INFO] [stdout] | [INFO] [stdout] 572 | let tx = tk.as_gen(deg_shift); [INFO] [stdout] | ------------------------------ unnecessary `let` binding [INFO] [stdout] 573 | tx [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] 572 ~ [INFO] [stdout] 573 ~ tk.as_gen(deg_shift) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> lib-kh/src/khi/internal/v2/builder.rs:594:23 [INFO] [stdout] | [INFO] [stdout] 594 | &self.key_map[&k] [INFO] [stdout] | ^^ help: change this to: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.59s [INFO] running `Command { std: "docker" "inspect" "9eae90c20900e1440b842333c8b50b5c01b6511b53ceeb8a5071a7aa0a54d4a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9eae90c20900e1440b842333c8b50b5c01b6511b53ceeb8a5071a7aa0a54d4a6", kill_on_drop: false }` [INFO] [stdout] 9eae90c20900e1440b842333c8b50b5c01b6511b53ceeb8a5071a7aa0a54d4a6