[INFO] fetching crate symbolica 1.4.0... [INFO] linting symbolica-1.4.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate symbolica 1.4.0 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate symbolica 1.4.0 [INFO] removed 0 missing examples [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate symbolica 1.4.0 [INFO] tweaked toml for crates.io crate symbolica 1.4.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate symbolica 1.4.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate symbolica 1.4.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded ctor v0.1.26 [INFO] [stderr] Downloaded wolfram-app-discovery v0.4.9 [INFO] [stderr] Downloaded mimalloc v0.1.48 [INFO] [stderr] Downloaded bincode_derive v2.0.1 [INFO] [stderr] Downloaded humantime v2.2.0 [INFO] [stderr] Downloaded unty v0.0.4 [INFO] [stderr] Downloaded wolfram-expr v0.1.4 [INFO] [stderr] Downloaded pyo3-macros v0.28.2 [INFO] [stderr] Downloaded pyo3-stub-gen-derive v0.17.2 [INFO] [stderr] Downloaded append-only-vec v0.1.7 [INFO] [stderr] Downloaded wolfram-library-link v0.2.10 [INFO] [stderr] Downloaded libmimalloc-sys v0.1.44 [INFO] [stderr] Downloaded pyo3-build-config v0.28.2 [INFO] [stderr] Downloaded windows_i686_gnu v0.32.0 [INFO] [stderr] Downloaded bincode-trait-derive v0.1.1 [INFO] [stderr] Downloaded rustpython-parser-core v0.4.0 [INFO] [stderr] Downloaded unicode_names2 v1.3.0 [INFO] [stderr] Downloaded windows_x86_64_msvc v0.32.0 [INFO] [stderr] Downloaded ndarray v0.16.1 [INFO] [stderr] Downloaded lalrpop-util v0.20.2 [INFO] [stderr] Downloaded pyo3-macros-backend v0.28.2 [INFO] [stderr] Downloaded rustpython-ast v0.4.0 [INFO] [stderr] Downloaded wolfram-library-link-macros v0.2.10 [INFO] [stderr] Downloaded rustpython-parser v0.4.0 [INFO] [stderr] Downloaded unicode_names2_generator v1.3.0 [INFO] [stderr] Downloaded ordered-float v3.9.2 [INFO] [stderr] Downloaded ref-cast v1.0.24 [INFO] [stderr] Downloaded inventory v0.3.21 [INFO] [stderr] Downloaded numerica v1.3.0 [INFO] [stderr] Downloaded smartstring v1.0.1 [INFO] [stderr] Downloaded wstp-sys v0.2.8 [INFO] [stderr] Downloaded pyo3-ffi v0.28.2 [INFO] [stderr] Downloaded windows_i686_msvc v0.32.0 [INFO] [stderr] Downloaded unic-emoji-char v0.9.0 [INFO] [stderr] Downloaded ghost v0.1.20 [INFO] [stderr] Downloaded rustpython-parser-vendored v0.4.0 [INFO] [stderr] Downloaded gmp-mpfr-sys v1.6.7 [INFO] [stderr] Downloaded pyo3-stub-gen v0.17.2 [INFO] [stderr] Downloaded env_logger v0.10.2 [INFO] [stderr] Downloaded self_cell v1.2.0 [INFO] [stderr] Downloaded inventory v0.2.3 [INFO] [stderr] Downloaded bincode v2.0.1 [INFO] [stderr] Downloaded rug v1.28.0 [INFO] [stderr] Downloaded rand_xoshiro v0.7.0 [INFO] [stderr] Downloaded ref-cast-impl v1.0.24 [INFO] [stderr] Downloaded wolfram-library-link-sys v0.2.10 [INFO] [stderr] Downloaded pyo3 v0.28.2 [INFO] [stderr] Downloaded process_path v0.1.4 [INFO] [stderr] Downloaded tinyjson v2.5.1 [INFO] [stderr] Downloaded windows_x86_64_gnu v0.32.0 [INFO] [stderr] Downloaded wasi v0.14.3+wasi-0.2.4 [INFO] [stderr] Downloaded numpy v0.28.0 [INFO] [stderr] Downloaded windows_aarch64_msvc v0.32.0 [INFO] [stderr] Downloaded libloading v0.9.0 [INFO] [stderr] Downloaded wstp v0.2.9 [INFO] [stderr] Downloaded unic-ucd-ident v0.9.0 [INFO] [stderr] Downloaded is-macro v0.3.7 [INFO] [stderr] Downloaded windows v0.32.0 [INFO] [stderr] Downloaded graphica v1.2.1 [INFO] [stderr] Downloaded virtue v0.0.18 [INFO] [stderr] Downloaded wit-bindgen v0.45.0 [INFO] [stderr] Downloaded colored v3.0.0 [INFO] [stderr] Downloaded link-cplusplus v1.0.10 [INFO] [stderr] Downloaded pyo3-log v0.13.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8cafb6ec6d30e3c17b49aa458fce4774053a205d5bf055ef3cd534a594bdc47d [INFO] running `Command { std: "docker" "start" "-a" "8cafb6ec6d30e3c17b49aa458fce4774053a205d5bf055ef3cd534a594bdc47d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8cafb6ec6d30e3c17b49aa458fce4774053a205d5bf055ef3cd534a594bdc47d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8cafb6ec6d30e3c17b49aa458fce4774053a205d5bf055ef3cd534a594bdc47d", kill_on_drop: false }` [INFO] [stdout] 8cafb6ec6d30e3c17b49aa458fce4774053a205d5bf055ef3cd534a594bdc47d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ee276e202ab46cdd321fa6578d57d7a9465c8463a34f673f3fef2ce3b62219e4 [INFO] running `Command { std: "docker" "start" "-a" "ee276e202ab46cdd321fa6578d57d7a9465c8463a34f673f3fef2ce3b62219e4", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.175 [INFO] [stderr] Checking cfg-if v1.0.3 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling gmp-mpfr-sys v1.6.7 [INFO] [stderr] Compiling libm v0.2.15 [INFO] [stderr] Compiling az v1.2.1 [INFO] [stderr] Compiling rug v1.28.0 [INFO] [stderr] Compiling cc v1.2.34 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking bytemuck v1.24.0 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Checking regex-syntax v0.6.29 [INFO] [stderr] Checking regex-syntax v0.8.6 [INFO] [stderr] Compiling smartstring v1.0.1 [INFO] [stderr] Compiling proc-macro2 v1.0.103 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Checking safe_arch v1.0.0 [INFO] [stderr] Checking dyn-clone v1.0.20 [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking log v0.4.28 [INFO] [stderr] Checking colored v3.0.0 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Checking brotli-decompressor v5.0.0 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Compiling quote v1.0.41 [INFO] [stderr] Compiling symbolica v1.4.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking wide v1.1.1 [INFO] [stderr] Checking static_assertions v1.1.0 [INFO] [stderr] Compiling syn v2.0.108 [INFO] [stderr] Checking libloading v0.9.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking self_cell v1.2.0 [INFO] [stderr] Checking tinyjson v2.5.1 [INFO] [stderr] Checking regex-automata v0.4.10 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Checking append-only-vec v0.1.7 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking rand_xoshiro v0.7.0 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking brotli v8.0.2 [INFO] [stderr] Compiling libmimalloc-sys v0.1.44 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking matchers v0.1.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking regex v1.11.2 [INFO] [stderr] Checking mimalloc v0.1.48 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking numerica v1.3.0 [INFO] [stderr] Checking graphica v1.2.1 [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:31:23 [INFO] [stdout] | [INFO] [stdout] 31 | const TYPE_MASK: u8 = 0b00000_111; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0000_0111` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] = note: `#[warn(clippy::unusual_byte_groupings)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:32:28 [INFO] [stdout] | [INFO] [stdout] 32 | const NOT_NORMALIZED: u8 = 0b10000_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:33:29 [INFO] [stdout] | [INFO] [stdout] 33 | const SYM_LINEAR_FLAG: u8 = 0b01000_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:34:32 [INFO] [stdout] | [INFO] [stdout] 34 | const SYM_SYMMETRIC_FLAG: u8 = 0b00100_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:35:36 [INFO] [stdout] | [INFO] [stdout] 35 | const SYM_ANTISYMMETRIC_FLAG: u8 = 0b00010_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:37:37 [INFO] [stdout] | [INFO] [stdout] 37 | const SYM_CYCLESYMMETRIC_FLAG: u8 = 0b00110_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0011_0000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:38:29 [INFO] [stdout] | [INFO] [stdout] 38 | const SYM_SCALAR_FLAG: u8 = 0b00001_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:31:23 [INFO] [stdout] | [INFO] [stdout] 31 | const TYPE_MASK: u8 = 0b00000_111; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0000_0111` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] = note: `#[warn(clippy::unusual_byte_groupings)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:32:28 [INFO] [stdout] | [INFO] [stdout] 32 | const NOT_NORMALIZED: u8 = 0b10000_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:33:29 [INFO] [stdout] | [INFO] [stdout] 33 | const SYM_LINEAR_FLAG: u8 = 0b01000_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:34:32 [INFO] [stdout] | [INFO] [stdout] 34 | const SYM_SYMMETRIC_FLAG: u8 = 0b00100_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:35:36 [INFO] [stdout] | [INFO] [stdout] 35 | const SYM_ANTISYMMETRIC_FLAG: u8 = 0b00010_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:37:37 [INFO] [stdout] | [INFO] [stdout] 37 | const SYM_CYCLESYMMETRIC_FLAG: u8 = 0b00110_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0011_0000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/atom/representation.rs:38:29 [INFO] [stdout] | [INFO] [stdout] 38 | const SYM_SCALAR_FLAG: u8 = 0b00001_000; [INFO] [stdout] | ^^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `function` [INFO] [stdout] --> src/atom.rs:3094:9 [INFO] [stdout] | [INFO] [stdout] 3094 | function, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/poly/factor.rs:2736:13 [INFO] [stdout] | [INFO] [stdout] 2736 | i += 1; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `pc` is never read [INFO] [stdout] --> src/poly/groebner.rs:753:21 [INFO] [stdout] | [INFO] [stdout] 753 | pc += 1; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/poly/factor.rs:2736:13 [INFO] [stdout] | [INFO] [stdout] 2736 | i += 1; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `pc` is never read [INFO] [stdout] --> src/poly/groebner.rs:753:21 [INFO] [stdout] | [INFO] [stdout] 753 | pc += 1; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:171:18 [INFO] [stdout] | [INFO] [stdout] 171 | key_map: Option>, [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] --> src/atom/core.rs:172:20 [INFO] [stdout] | [INFO] [stdout] 172 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:198:18 [INFO] [stdout] | [INFO] [stdout] 198 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:199:20 [INFO] [stdout] | [INFO] [stdout] 199 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:227:18 [INFO] [stdout] | [INFO] [stdout] 227 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:228:20 [INFO] [stdout] | [INFO] [stdout] 228 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:694:10 [INFO] [stdout] | [INFO] [stdout] 694 | ) -> Result< [INFO] [stdout] | __________^ [INFO] [stdout] 695 | | ( [INFO] [stdout] 696 | | Matrix>, [INFO] [stdout] 697 | | Matrix>, [INFO] [stdout] 698 | | ), [INFO] [stdout] 699 | | String, [INFO] [stdout] 700 | | > { [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: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/atom/representation.rs:312:1 [INFO] [stdout] | [INFO] [stdout] 312 | / impl PartialOrd for InlineVar { [INFO] [stdout] 313 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 314 | | Some(self.as_view().cmp(&other.as_view())) [INFO] [stdout] 315 | | } [INFO] [stdout] 316 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 313 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 314 - Some(self.as_view().cmp(&other.as_view())) [INFO] [stdout] 315 - } [INFO] [stdout] 313 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/atom/representation.rs:395:1 [INFO] [stdout] | [INFO] [stdout] 395 | / impl PartialOrd for InlineNum { [INFO] [stdout] 396 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 397 | | Some(self.as_view().cmp(&other.as_view())) [INFO] [stdout] 398 | | } [INFO] [stdout] 399 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 396 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 397 - Some(self.as_view().cmp(&other.as_view())) [INFO] [stdout] 398 - } [INFO] [stdout] 396 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/representation.rs:571:22 [INFO] [stdout] | [INFO] [stdout] 571 | conflict_fn: Option String>>, [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: struct `ListIterator` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/atom/representation.rs:2134:5 [INFO] [stdout] | [INFO] [stdout] 2134 | 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: struct `ListSlice` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/atom/representation.rs:2248:5 [INFO] [stdout] | [INFO] [stdout] 2248 | 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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom.rs:445:16 [INFO] [stdout] | [INFO] [stdout] 445 | generator: Option SymbolBuilder + 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: the variable `next_index` is used as a loop counter [INFO] [stdout] --> src/atom.rs:595:9 [INFO] [stdout] | [INFO] [stdout] 595 | for b in &builders { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using: `for (next_index, b) in (state.get_next_symbol_index()..).zip(builders.iter())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/atom.rs:748:5 [INFO] [stdout] | [INFO] [stdout] 748 | / pub fn new(name: NamespacedSymbol) -> SymbolBuilder { [INFO] [stdout] 749 | | SymbolBuilder::new(name) [INFO] [stdout] 750 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/atom.rs:1099:5 [INFO] [stdout] | [INFO] [stdout] 1099 | / pub const fn raw_fn( [INFO] [stdout] 1100 | | id: u32, [INFO] [stdout] 1101 | | wildcard_level: u8, [INFO] [stdout] 1102 | | is_symmetric: bool, [INFO] [stdout] ... | [INFO] [stdout] 1109 | | is_positive: bool, [INFO] [stdout] 1110 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_mut` can be confused for the standard trait method `std::convert::AsMut::as_mut` [INFO] [stdout] --> src/atom.rs:1718:5 [INFO] [stdout] | [INFO] [stdout] 1718 | / pub fn as_mut(&mut self) -> &mut Atom { [INFO] [stdout] 1719 | | match self { [INFO] [stdout] 1720 | | AtomOrView::Atom(a) => a, [INFO] [stdout] 1721 | | AtomOrView::InlineVar(v) => { [INFO] [stdout] ... | [INFO] [stdout] 1740 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::convert::AsMut` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/coefficient.rs:1857:29 [INFO] [stdout] | [INFO] [stdout] 1857 | / ... return ( [INFO] [stdout] 1858 | | ... Coefficient::one(), [INFO] [stdout] 1859 | | ... if *rn > 0 && *ir == 0 { [INFO] [stdout] 1860 | | ... Coefficient::Infinity(None) [INFO] [stdout] ... | [INFO] [stdout] 1870 | | ... Coefficient::one(), [INFO] [stdout] 1871 | | ... ); [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] 1857 ~ ( [INFO] [stdout] 1858 + Coefficient::one(), [INFO] [stdout] 1859 + if *rn > 0 && *ir == 0 { [INFO] [stdout] 1860 + Coefficient::Infinity(None) [INFO] [stdout] 1861 + } else { [INFO] [stdout] 1862 + warn!( [INFO] [stdout] 1863 + "Created indeterminate by raising {} to the power of {}", [INFO] [stdout] 1864 + self.to_owned(), [INFO] [stdout] 1865 + other.to_owned() [INFO] [stdout] 1866 + ); [INFO] [stdout] 1867 + [INFO] [stdout] 1868 + Coefficient::Indeterminate [INFO] [stdout] 1869 + }, [INFO] [stdout] 1870 + Coefficient::one(), [INFO] [stdout] 1871 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/coefficient.rs:1874:29 [INFO] [stdout] | [INFO] [stdout] 1874 | / ... return ( [INFO] [stdout] 1875 | | ... Coefficient::one(), [INFO] [stdout] 1876 | | ... if !rn.is_negative() && !rn.is_zero() && ir.is_zero() { [INFO] [stdout] 1877 | | ... Coefficient::Infinity(None) [INFO] [stdout] ... | [INFO] [stdout] 1887 | | ... Coefficient::one(), [INFO] [stdout] 1888 | | ... ); [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] 1874 ~ ( [INFO] [stdout] 1875 + Coefficient::one(), [INFO] [stdout] 1876 + if !rn.is_negative() && !rn.is_zero() && ir.is_zero() { [INFO] [stdout] 1877 + Coefficient::Infinity(None) [INFO] [stdout] 1878 + } else { [INFO] [stdout] 1879 + warn!( [INFO] [stdout] 1880 + "Created indeterminate by raising {} to the power of {}", [INFO] [stdout] 1881 + self.to_owned(), [INFO] [stdout] 1882 + other.to_owned() [INFO] [stdout] 1883 + ); [INFO] [stdout] 1884 + [INFO] [stdout] 1885 + Coefficient::Indeterminate [INFO] [stdout] 1886 + }, [INFO] [stdout] 1887 + Coefficient::one(), [INFO] [stdout] 1888 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/coefficient.rs:1891:29 [INFO] [stdout] | [INFO] [stdout] 1891 | / ... return ( [INFO] [stdout] 1892 | | ... Coefficient::one(), [INFO] [stdout] 1893 | | ... Coefficient::Indeterminate, [INFO] [stdout] 1894 | | ... Coefficient::one(), [INFO] [stdout] 1895 | | ... ); [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] 1891 ~ ( [INFO] [stdout] 1892 + Coefficient::one(), [INFO] [stdout] 1893 + Coefficient::Indeterminate, [INFO] [stdout] 1894 + Coefficient::one(), [INFO] [stdout] 1895 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/coefficient.rs:1898:29 [INFO] [stdout] | [INFO] [stdout] 1898 | / ... return ( [INFO] [stdout] 1899 | | ... Coefficient::one(), [INFO] [stdout] 1900 | | ... Coefficient::Infinity(None), [INFO] [stdout] 1901 | | ... Coefficient::one(), [INFO] [stdout] 1902 | | ... ); [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] 1898 ~ ( [INFO] [stdout] 1899 + Coefficient::one(), [INFO] [stdout] 1900 + Coefficient::Infinity(None), [INFO] [stdout] 1901 + Coefficient::one(), [INFO] [stdout] 1902 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/coefficient.rs:2031:32 [INFO] [stdout] | [INFO] [stdout] 2031 | n1.inner().cmp(&n2.inner()) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `n2.inner()` [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: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/coefficient.rs:2870:33 [INFO] [stdout] | [INFO] [stdout] 2870 | pub(crate) fn to_float_into(&self, decimal_prec: u32, out: &mut Atom) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/coefficient.rs:2877:9 [INFO] [stdout] | [INFO] [stdout] 2877 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:28:18 [INFO] [stdout] | [INFO] [stdout] 28 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:29:20 [INFO] [stdout] | [INFO] [stdout] 29 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:37:18 [INFO] [stdout] | [INFO] [stdout] 37 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:38:20 [INFO] [stdout] | [INFO] [stdout] 38 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:53:20 [INFO] [stdout] | [INFO] [stdout] 53 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 65 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:66:20 [INFO] [stdout] | [INFO] [stdout] 66 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:78:22 [INFO] [stdout] | [INFO] [stdout] 78 | key_map: &Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:79:24 [INFO] [stdout] | [INFO] [stdout] 79 | coeff_map: &Option>, [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: suspicious use of `*` in `Div` impl [INFO] [stdout] --> src/domains/rational_polynomial.rs:1090:14 [INFO] [stdout] | [INFO] [stdout] 1090 | self * &other.clone().inv() [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stdout] = note: `#[warn(clippy::suspicious_arithmetic_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/domains/rational_polynomial.rs:1466:55 [INFO] [stdout] | [INFO] [stdout] 1466 | for (mut h, (mut p, _)) in hs.into_iter().zip(fs.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/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/iterator.rs:629:11 [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] 1466 - for (mut h, (mut p, _)) in hs.into_iter().zip(fs.into_iter()) { [INFO] [stdout] 1466 + for (mut h, (mut p, _)) in hs.into_iter().zip(fs) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CSE` contains a capitalized acronym [INFO] [stdout] --> src/evaluate.rs:1121:14 [INFO] [stdout] | [INFO] [stdout] 1121 | enum CSE<'a> { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Cse` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/evaluate.rs:1295:13 [INFO] [stdout] | [INFO] [stdout] 1295 | / if common_ops_simple.len() > self.settings.max_common_pair_cache_entries { [INFO] [stdout] 1296 | | if common_ops_simple.len() > self.settings.max_common_pair_cache_entries { [INFO] [stdout] 1297 | | break; [INFO] [stdout] 1298 | | } [INFO] [stdout] 1299 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1295 ~ if common_ops_simple.len() > self.settings.max_common_pair_cache_entries [INFO] [stdout] 1296 ~ && common_ops_simple.len() > self.settings.max_common_pair_cache_entries { [INFO] [stdout] 1297 | break; [INFO] [stdout] 1298 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/evaluate.rs:1301:13 [INFO] [stdout] | [INFO] [stdout] 1301 | / if p % 10000 == 0 { [INFO] [stdout] 1302 | | if let Some(abort_check) = &self.settings.abort_check { [INFO] [stdout] 1303 | | if abort_check() { [INFO] [stdout] 1304 | | self.settings.abort_level = 1; [INFO] [stdout] ... | [INFO] [stdout] 1308 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1301 ~ if p % 10000 == 0 [INFO] [stdout] 1302 ~ && let Some(abort_check) = &self.settings.abort_check { [INFO] [stdout] 1303 | if abort_check() { [INFO] [stdout] ... [INFO] [stdout] 1306 | } [INFO] [stdout] 1307 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/evaluate.rs:1302:17 [INFO] [stdout] | [INFO] [stdout] 1302 | / if let Some(abort_check) = &self.settings.abort_check { [INFO] [stdout] 1303 | | if abort_check() { [INFO] [stdout] 1304 | | self.settings.abort_level = 1; [INFO] [stdout] 1305 | | break; [INFO] [stdout] 1306 | | } [INFO] [stdout] 1307 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1302 ~ if let Some(abort_check) = &self.settings.abort_check [INFO] [stdout] 1303 ~ && abort_check() { [INFO] [stdout] 1304 | self.settings.abort_level = 1; [INFO] [stdout] 1305 | break; [INFO] [stdout] 1306 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(c).is_none()` [INFO] [stdout] --> src/evaluate.rs:1867:26 [INFO] [stdout] | [INFO] [stdout] 1867 | if constants.get(c).is_none() { [INFO] [stdout] | ----------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!constants.contains_key(c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `last_use` [INFO] [stdout] --> src/evaluate.rs:2064:18 [INFO] [stdout] | [INFO] [stdout] 2064 | for i in 0..self.reserved_indices { [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] 2064 - for i in 0..self.reserved_indices { [INFO] [stdout] 2064 + for in last_use.iter_mut().take(self.reserved_indices) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/evaluate.rs:2728:13 [INFO] [stdout] | [INFO] [stdout] 2728 | !(!self.stack.iter().all(|x| x.is_real()) && number_class == NumberClass::RealF64), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.stack.iter().all(|x| x.is_real()) || number_class != NumberClass::RealF64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/evaluate.rs:3232:33 [INFO] [stdout] | [INFO] [stdout] 3232 | let mut free_regs = u16::MAX & !(1 << 15); // leave xmmm15 open [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `!(1 << 15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:171:18 [INFO] [stdout] | [INFO] [stdout] 171 | key_map: Option>, [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] --> src/atom/core.rs:172:20 [INFO] [stdout] | [INFO] [stdout] 172 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:198:18 [INFO] [stdout] | [INFO] [stdout] 198 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:199:20 [INFO] [stdout] | [INFO] [stdout] 199 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:227:18 [INFO] [stdout] | [INFO] [stdout] 227 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:228:20 [INFO] [stdout] | [INFO] [stdout] 228 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/core.rs:694:10 [INFO] [stdout] | [INFO] [stdout] 694 | ) -> Result< [INFO] [stdout] | __________^ [INFO] [stdout] 695 | | ( [INFO] [stdout] 696 | | Matrix>, [INFO] [stdout] 697 | | Matrix>, [INFO] [stdout] 698 | | ), [INFO] [stdout] 699 | | String, [INFO] [stdout] 700 | | > { [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: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/atom/representation.rs:312:1 [INFO] [stdout] | [INFO] [stdout] 312 | / impl PartialOrd for InlineVar { [INFO] [stdout] 313 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 314 | | Some(self.as_view().cmp(&other.as_view())) [INFO] [stdout] 315 | | } [INFO] [stdout] 316 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 313 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 314 - Some(self.as_view().cmp(&other.as_view())) [INFO] [stdout] 315 - } [INFO] [stdout] 313 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/atom/representation.rs:395:1 [INFO] [stdout] | [INFO] [stdout] 395 | / impl PartialOrd for InlineNum { [INFO] [stdout] 396 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 397 | | Some(self.as_view().cmp(&other.as_view())) [INFO] [stdout] 398 | | } [INFO] [stdout] 399 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 396 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 397 - Some(self.as_view().cmp(&other.as_view())) [INFO] [stdout] 398 - } [INFO] [stdout] 396 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom/representation.rs:571:22 [INFO] [stdout] | [INFO] [stdout] 571 | conflict_fn: Option String>>, [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: struct `ListIterator` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/atom/representation.rs:2134:5 [INFO] [stdout] | [INFO] [stdout] 2134 | 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: struct `ListSlice` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/atom/representation.rs:2248:5 [INFO] [stdout] | [INFO] [stdout] 2248 | 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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/atom.rs:445:16 [INFO] [stdout] | [INFO] [stdout] 445 | generator: Option SymbolBuilder + 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: useless use of `format!` [INFO] [stdout] --> src/evaluate.rs:4328:42 [INFO] [stdout] | [INFO] [stdout] 4328 | ... *out += &format!("\t\t\"addpd %%xmm1, %%xmm0\\n\\t\"\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"\t\t\"addpd %%xmm1, %%xmm0\\n\\t\"\n".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: the variable `next_index` is used as a loop counter [INFO] [stdout] --> src/atom.rs:595:9 [INFO] [stdout] | [INFO] [stdout] 595 | for b in &builders { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using: `for (next_index, b) in (state.get_next_symbol_index()..).zip(builders.iter())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/atom.rs:748:5 [INFO] [stdout] | [INFO] [stdout] 748 | / pub fn new(name: NamespacedSymbol) -> SymbolBuilder { [INFO] [stdout] 749 | | SymbolBuilder::new(name) [INFO] [stdout] 750 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/atom.rs:1099:5 [INFO] [stdout] | [INFO] [stdout] 1099 | / pub const fn raw_fn( [INFO] [stdout] 1100 | | id: u32, [INFO] [stdout] 1101 | | wildcard_level: u8, [INFO] [stdout] 1102 | | is_symmetric: bool, [INFO] [stdout] ... | [INFO] [stdout] 1109 | | is_positive: bool, [INFO] [stdout] 1110 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_mut` can be confused for the standard trait method `std::convert::AsMut::as_mut` [INFO] [stdout] --> src/atom.rs:1718:5 [INFO] [stdout] | [INFO] [stdout] 1718 | / pub fn as_mut(&mut self) -> &mut Atom { [INFO] [stdout] 1719 | | match self { [INFO] [stdout] 1720 | | AtomOrView::Atom(a) => a, [INFO] [stdout] 1721 | | AtomOrView::InlineVar(v) => { [INFO] [stdout] ... | [INFO] [stdout] 1740 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::convert::AsMut` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/coefficient.rs:1857:29 [INFO] [stdout] | [INFO] [stdout] 1857 | / ... return ( [INFO] [stdout] 1858 | | ... Coefficient::one(), [INFO] [stdout] 1859 | | ... if *rn > 0 && *ir == 0 { [INFO] [stdout] 1860 | | ... Coefficient::Infinity(None) [INFO] [stdout] ... | [INFO] [stdout] 1870 | | ... Coefficient::one(), [INFO] [stdout] 1871 | | ... ); [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] 1857 ~ ( [INFO] [stdout] 1858 + Coefficient::one(), [INFO] [stdout] 1859 + if *rn > 0 && *ir == 0 { [INFO] [stdout] 1860 + Coefficient::Infinity(None) [INFO] [stdout] 1861 + } else { [INFO] [stdout] 1862 + warn!( [INFO] [stdout] 1863 + "Created indeterminate by raising {} to the power of {}", [INFO] [stdout] 1864 + self.to_owned(), [INFO] [stdout] 1865 + other.to_owned() [INFO] [stdout] 1866 + ); [INFO] [stdout] 1867 + [INFO] [stdout] 1868 + Coefficient::Indeterminate [INFO] [stdout] 1869 + }, [INFO] [stdout] 1870 + Coefficient::one(), [INFO] [stdout] 1871 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/coefficient.rs:1874:29 [INFO] [stdout] | [INFO] [stdout] 1874 | / ... return ( [INFO] [stdout] 1875 | | ... Coefficient::one(), [INFO] [stdout] 1876 | | ... if !rn.is_negative() && !rn.is_zero() && ir.is_zero() { [INFO] [stdout] 1877 | | ... Coefficient::Infinity(None) [INFO] [stdout] ... | [INFO] [stdout] 1887 | | ... Coefficient::one(), [INFO] [stdout] 1888 | | ... ); [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] 1874 ~ ( [INFO] [stdout] 1875 + Coefficient::one(), [INFO] [stdout] 1876 + if !rn.is_negative() && !rn.is_zero() && ir.is_zero() { [INFO] [stdout] 1877 + Coefficient::Infinity(None) [INFO] [stdout] 1878 + } else { [INFO] [stdout] 1879 + warn!( [INFO] [stdout] 1880 + "Created indeterminate by raising {} to the power of {}", [INFO] [stdout] 1881 + self.to_owned(), [INFO] [stdout] 1882 + other.to_owned() [INFO] [stdout] 1883 + ); [INFO] [stdout] 1884 + [INFO] [stdout] 1885 + Coefficient::Indeterminate [INFO] [stdout] 1886 + }, [INFO] [stdout] 1887 + Coefficient::one(), [INFO] [stdout] 1888 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/coefficient.rs:1891:29 [INFO] [stdout] | [INFO] [stdout] 1891 | / ... return ( [INFO] [stdout] 1892 | | ... Coefficient::one(), [INFO] [stdout] 1893 | | ... Coefficient::Indeterminate, [INFO] [stdout] 1894 | | ... Coefficient::one(), [INFO] [stdout] 1895 | | ... ); [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] 1891 ~ ( [INFO] [stdout] 1892 + Coefficient::one(), [INFO] [stdout] 1893 + Coefficient::Indeterminate, [INFO] [stdout] 1894 + Coefficient::one(), [INFO] [stdout] 1895 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/coefficient.rs:1898:29 [INFO] [stdout] | [INFO] [stdout] 1898 | / ... return ( [INFO] [stdout] 1899 | | ... Coefficient::one(), [INFO] [stdout] 1900 | | ... Coefficient::Infinity(None), [INFO] [stdout] 1901 | | ... Coefficient::one(), [INFO] [stdout] 1902 | | ... ); [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] 1898 ~ ( [INFO] [stdout] 1899 + Coefficient::one(), [INFO] [stdout] 1900 + Coefficient::Infinity(None), [INFO] [stdout] 1901 + Coefficient::one(), [INFO] [stdout] 1902 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/evaluate.rs:5396:34 [INFO] [stdout] | [INFO] [stdout] 5396 | ... .map(|x| (0..v.get_dimension()).map(move |k| x.index(k))) [INFO] [stdout] | ________________________^ [INFO] [stdout] 5397 | | ... .flatten() [INFO] [stdout] | |________________________________^ help: try replacing `map` with `flat_map` and remove the `.flatten()`: `flat_map(|x| (0..v.get_dimension()).map(move |k| x.index(k)))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/evaluate.rs:5395:61 [INFO] [stdout] | [INFO] [stdout] 5395 | ... .map(|x| get_slot!(slot_map[&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: the loop variable `j` is only used to index `a` [INFO] [stdout] --> src/evaluate.rs:5712:22 [INFO] [stdout] | [INFO] [stdout] 5712 | for j in 0..a.len() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 5712 - for j in 0..a.len() { [INFO] [stdout] 5712 + for in &a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/evaluate.rs:5772:74 [INFO] [stdout] | [INFO] [stdout] 5772 | ... * (num.from_usize(2).inv() - &num.from_usize(p as usize - 1)); [INFO] [stdout] | ^^^^^^^^^^ help: try: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Slot` which implements the `Copy` trait [INFO] [stdout] --> src/evaluate.rs:5863:49 [INFO] [stdout] | [INFO] [stdout] 5863 | let b = if i % 2 == 1 { c.clone() } else { s.clone() }; [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `c` [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 `Slot` which implements the `Copy` trait [INFO] [stdout] --> src/evaluate.rs:5863:68 [INFO] [stdout] | [INFO] [stdout] 5863 | let b = if i % 2 == 1 { c.clone() } else { s.clone() }; [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `s` [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 `Slot` which implements the `Copy` trait [INFO] [stdout] --> src/evaluate.rs:5898:49 [INFO] [stdout] | [INFO] [stdout] 5898 | let b = if i % 2 == 1 { s.clone() } else { c.clone() }; [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `s` [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 `Slot` which implements the `Copy` trait [INFO] [stdout] --> src/evaluate.rs:5898:68 [INFO] [stdout] | [INFO] [stdout] 5898 | let b = if i % 2 == 1 { s.clone() } else { c.clone() }; [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `c` [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: taken reference of right operand [INFO] [stdout] --> src/evaluate.rs:6048:71 [INFO] [stdout] | [INFO] [stdout] 6048 | if let Some(c) = self.constants.chunks(self.dim).position(|x| x == &value) { [INFO] [stdout] | ^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | help: use the right value directly: `value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/coefficient.rs:2031:32 [INFO] [stdout] | [INFO] [stdout] 2031 | n1.inner().cmp(&n2.inner()) [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `n2.inner()` [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 function has too many arguments (9/7) [INFO] [stdout] --> src/evaluate.rs:6362:5 [INFO] [stdout] | [INFO] [stdout] 6362 | / fn linearize_impl( [INFO] [stdout] 6363 | | &self, [INFO] [stdout] 6364 | | tree: &Expression>, [INFO] [stdout] 6365 | | subexpressions: &[Expression>], [INFO] [stdout] ... | [INFO] [stdout] 6371 | | reserved_indices: usize, [INFO] [stdout] 6372 | | ) -> usize { [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/coefficient.rs:2870:33 [INFO] [stdout] | [INFO] [stdout] 2870 | pub(crate) fn to_float_into(&self, decimal_prec: u32, out: &mut Atom) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/coefficient.rs:2877:9 [INFO] [stdout] | [INFO] [stdout] 2877 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/evaluate.rs:7550:22 [INFO] [stdout] | [INFO] [stdout] 7550 | h.insert(&*e, self.subexpressions.len() + index); [INFO] [stdout] | ^^^ help: if you would like to reborrow, try removing `&*`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:28:18 [INFO] [stdout] | [INFO] [stdout] 28 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:29:20 [INFO] [stdout] | [INFO] [stdout] 29 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:37:18 [INFO] [stdout] | [INFO] [stdout] 37 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:38:20 [INFO] [stdout] | [INFO] [stdout] 38 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:53:20 [INFO] [stdout] | [INFO] [stdout] 53 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 65 | key_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:66:20 [INFO] [stdout] | [INFO] [stdout] 66 | coeff_map: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:78:22 [INFO] [stdout] | [INFO] [stdout] 78 | key_map: &Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collect.rs:79:24 [INFO] [stdout] | [INFO] [stdout] 79 | coeff_map: &Option>, [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: direct implementation of `ToString` [INFO] [stdout] --> src/evaluate.rs:9671:1 [INFO] [stdout] | [INFO] [stdout] 9671 | / impl ToString for CompileOptions { [INFO] [stdout] 9672 | | /// Convert the compilation options to the string that would be used [INFO] [stdout] 9673 | | /// in the compiler call. [INFO] [stdout] 9674 | | fn to_string(&self) -> String { [INFO] [stdout] ... | [INFO] [stdout] 9703 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/evaluate.rs:9862:9 [INFO] [stdout] | [INFO] [stdout] 9862 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/evaluate.rs:9867:16 [INFO] [stdout] | [INFO] [stdout] 9867 | funcs: &mut Vec<( [INFO] [stdout] | ________________^ [INFO] [stdout] 9868 | | String, [INFO] [stdout] 9869 | | Vec, [INFO] [stdout] 9870 | | SplitExpression>, [INFO] [stdout] 9871 | | )>, [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 lifetime isn't used in the function definition [INFO] [stdout] --> src/id.rs:438:21 [INFO] [stdout] | [INFO] [stdout] 438 | pub fn with_map<'c, R: MatchMap + 'static>(&self, rhs: R) -> Atom { [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: match expression looks like `matches!` macro [INFO] [stdout] --> src/id.rs:726:33 [INFO] [stdout] | [INFO] [stdout] 726 | AtomView::Var(v) => match v.get_symbol_id() { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 727 | | Symbol::PI_ID | Symbol::E_ID => true, [INFO] [stdout] 728 | | _ => false, [INFO] [stdout] 729 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 726 - AtomView::Var(v) => match v.get_symbol_id() { [INFO] [stdout] 727 - Symbol::PI_ID | Symbol::E_ID => true, [INFO] [stdout] 728 - _ => false, [INFO] [stdout] 729 - }, [INFO] [stdout] 726 + AtomView::Var(v) => matches!(v.get_symbol_id(), Symbol::PI_ID | Symbol::E_ID), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `Iterator::fold` on a type that implements `Try` [INFO] [stdout] --> src/id.rs:1375:42 [INFO] [stdout] | [INFO] [stdout] 1375 | let max_level = atom_iter.iter().fold(Some((0, true)), |acc, (_, stack)| { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 1376 | | acc.and_then(|(max_level, tree)| { [INFO] [stdout] 1377 | | stack.settings.level_range.1.map(|level| { [INFO] [stdout] ... | [INFO] [stdout] 1383 | | }) [INFO] [stdout] 1384 | | }); [INFO] [stdout] | |__________^ help: use `try_fold` instead: `try_fold((0, true), |acc, (_, stack)| ...)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_try_fold [INFO] [stdout] = note: `#[warn(clippy::manual_try_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/id.rs:1422:20 [INFO] [stdout] | [INFO] [stdout] 1422 | rhs_cache: &mut HashMap<(usize, Vec<(Symbol, Match<'a>)>), Atom>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/id.rs:1414:5 [INFO] [stdout] | [INFO] [stdout] 1414 | / fn replace_no_norm<'b, T: BorrowReplacement>( [INFO] [stdout] 1415 | | &self, [INFO] [stdout] 1416 | | replacements: &'b [T], [INFO] [stdout] 1417 | | atom_match_iterators: &mut [(AtomMatchIterator<'a, 'b>, WrappedMatchStack<'a, 'b>)], [INFO] [stdout] ... | [INFO] [stdout] 1424 | | out: &mut Settable, [INFO] [stdout] 1425 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/id.rs:1770:5 [INFO] [stdout] | [INFO] [stdout] 1770 | / pub(crate) fn replace_with_ws_into( [INFO] [stdout] 1771 | | &self, [INFO] [stdout] 1772 | | pattern: &Pattern, [INFO] [stdout] 1773 | | rhs: &ReplaceWith, [INFO] [stdout] ... | [INFO] [stdout] 1778 | | out: &mut Atom, [INFO] [stdout] 1779 | | ) -> bool { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `Iterator::fold` on a type that implements `Try` [INFO] [stdout] --> src/id.rs:1800:42 [INFO] [stdout] | [INFO] [stdout] 1800 | let max_level = atom_iter.iter().fold(Some((0, true)), |acc, (_, stack)| { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 1801 | | acc.and_then(|(max_level, tree)| { [INFO] [stdout] 1802 | | stack.settings.level_range.1.map(|level| { [INFO] [stdout] ... | [INFO] [stdout] 1808 | | }) [INFO] [stdout] 1809 | | }); [INFO] [stdout] | |__________^ help: use `try_fold` instead: `try_fold((0, true), |acc, (_, stack)| ...)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_try_fold [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/id.rs:2355:29 [INFO] [stdout] | [INFO] [stdout] 2355 | / ... if let AtomView::Var(v) = a { [INFO] [stdout] 2356 | | ... name = v.get_symbol(); [INFO] [stdout] 2357 | | ... } else { [INFO] [stdout] 2358 | | ... Err(TransformerError::ValueError(format!( [INFO] [stdout] ... | [INFO] [stdout] 2361 | | ... )))?; [INFO] [stdout] 2362 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/id.rs:2354:53 [INFO] [stdout] | [INFO] [stdout] 2354 | } else if let Match::Single(a) = w { [INFO] [stdout] | ^ replace this binding [INFO] [stdout] 2355 | if let AtomView::Var(v) = a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WrappedMatchStack` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/id.rs:3735:5 [INFO] [stdout] | [INFO] [stdout] 3735 | 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: matching on `Some` with `ok()` is redundant [INFO] [stdout] --> src/id.rs:3854:21 [INFO] [stdout] | [INFO] [stdout] 3854 | / if let Some(new_stack_len) = [INFO] [stdout] 3855 | | match_stack.insert(*w, Match::Single(self.target)).ok() [INFO] [stdout] | |_______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_result_ok [INFO] [stdout] = note: `#[warn(clippy::match_result_ok)]` on by default [INFO] [stdout] help: consider matching on `Ok(new_stack_len)` and removing the call to `ok` instead [INFO] [stdout] | [INFO] [stdout] 3854 - if let Some(new_stack_len) = [INFO] [stdout] 3855 - match_stack.insert(*w, Match::Single(self.target)).ok() [INFO] [stdout] 3854 + if let Ok(new_stack_len) = match_stack.insert(*w, Match::Single(self.target)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/id.rs:4463:41 [INFO] [stdout] | [INFO] [stdout] 4463 | / ... if self.processed_iterators < 64 { [INFO] [stdout] 4464 | | ... if w.name.get_wildcard_level() == 1 { [INFO] [stdout] 4465 | | ... self.compatibility_flag[k] |= [INFO] [stdout] 4466 | | ... 1 << (self.processed_iterators - 1) as u64; [INFO] [stdout] 4467 | | ... } [INFO] [stdout] 4468 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 4463 ~ if self.processed_iterators < 64 [INFO] [stdout] 4464 ~ && w.name.get_wildcard_level() == 1 { [INFO] [stdout] 4465 | self.compatibility_flag[k] |= [INFO] [stdout] 4466 | 1 << (self.processed_iterators - 1) as u64; [INFO] [stdout] 4467 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/id.rs:4877:9 [INFO] [stdout] | [INFO] [stdout] 4877 | / match self.next_into(Some(&mut location)) { [INFO] [stdout] 4878 | | Some(atom) => Some((location, atom)), [INFO] [stdout] 4879 | | None => None, [INFO] [stdout] 4880 | | } [INFO] [stdout] | |_________^ help: try: `self.next_into(Some(&mut location)).map(|atom| (location, atom))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/id.rs:5153:21 [INFO] [stdout] | [INFO] [stdout] 5153 | &pattern_match.used_flags, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `pattern_match.used_flags` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `cmp` can be confused for the standard trait method `std::cmp::Ord::cmp` [INFO] [stdout] --> src/normalize.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | / pub fn cmp(&self, other: &AtomView<'_>) -> Ordering { [INFO] [stdout] 42 | | if self == other { [INFO] [stdout] 43 | | // equality comparison is a fast check [INFO] [stdout] 44 | | return Ordering::Equal; [INFO] [stdout] ... | [INFO] [stdout] 142 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::cmp::Ord` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `numerica::domains::float::Complex` [INFO] [stdout] --> src/normalize.rs:945:41 [INFO] [stdout] | [INFO] [stdout] 945 | ... Complex::new(r.to_float(), i.to_float()).norm().into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Complex::new(r.to_float(), i.to_float()).norm()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/normalize.rs:954:25 [INFO] [stdout] | [INFO] [stdout] 954 | / if id.get_id() == Symbol::ABS_ID { [INFO] [stdout] 955 | | if let Coefficient::Complex(c) = n.get_coeff_view().to_owned() { [INFO] [stdout] 956 | | if c.is_real() { [INFO] [stdout] 957 | | out.to_num(c.re.abs().into()); [INFO] [stdout] ... | [INFO] [stdout] 966 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 954 ~ if id.get_id() == Symbol::ABS_ID [INFO] [stdout] 955 ~ && let Coefficient::Complex(c) = n.get_coeff_view().to_owned() { [INFO] [stdout] 956 | if c.is_real() { [INFO] [stdout] ... [INFO] [stdout] 964 | return; [INFO] [stdout] 965 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `*` in `Div` impl [INFO] [stdout] --> src/domains/rational_polynomial.rs:1090:14 [INFO] [stdout] | [INFO] [stdout] 1090 | self * &other.clone().inv() [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stdout] = note: `#[warn(clippy::suspicious_arithmetic_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/domains/rational_polynomial.rs:1466:55 [INFO] [stdout] | [INFO] [stdout] 1466 | for (mut h, (mut p, _)) in hs.into_iter().zip(fs.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/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/iterator.rs:629:11 [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] 1466 - for (mut h, (mut p, _)) in hs.into_iter().zip(fs.into_iter()) { [INFO] [stdout] 1466 + for (mut h, (mut p, _)) in hs.into_iter().zip(fs) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/normalize.rs:1526:63 [INFO] [stdout] | [INFO] [stdout] 1526 | atom_sort_buf.sort_unstable_by(|a, b| a.1.cmp(&b.1)); [INFO] [stdout] | ^^^^ help: change this to: `b.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 `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/parser.rs:460:17 [INFO] [stdout] | [INFO] [stdout] 460 | / if distribute_neg { [INFO] [stdout] 461 | | for a in args { [INFO] [stdout] 462 | | a.distribute_neg(true); [INFO] [stdout] ... | [INFO] [stdout] 466 | | *self = Token::Op(false, false, Operator::Neg, vec![t]); [INFO] [stdout] 467 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 459 ~ Token::Op(_, _, Operator::Add, args) [INFO] [stdout] 460 ~ if distribute_neg => { [INFO] [stdout] 461 | for a in args { [INFO] [stdout] 462 | a.distribute_neg(true); [INFO] [stdout] 463 | } [INFO] [stdout] 464 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parser.rs:526:17 [INFO] [stdout] | [INFO] [stdout] 526 | Err(format!("parenthesis not closed")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"parenthesis not closed".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] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/parser.rs:1047:25 [INFO] [stdout] | [INFO] [stdout] 1047 | let level; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `level` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 1047 ~ [INFO] [stdout] 1048 ~ let level = match wt.as_str() { [INFO] [stdout] 1049 | "Blank" => { [INFO] [stdout] 1050 ~ 1 [INFO] [stdout] 1051 | } [INFO] [stdout] 1052 | "BlankSequence" => { [INFO] [stdout] 1053 ~ 2 [INFO] [stdout] 1054 | } [INFO] [stdout] 1055 | "BlankNullSequence" => { [INFO] [stdout] 1056 ~ 3 [INFO] [stdout] 1057 | } [INFO] [stdout] ... [INFO] [stdout] 1060 | } [INFO] [stdout] 1061 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/parser.rs:1142:24 [INFO] [stdout] | [INFO] [stdout] 1142 | mut atom_info: Option<( [INFO] [stdout] | ________________________^ [INFO] [stdout] 1143 | | &DefaultNamespace, [INFO] [stdout] 1144 | | &mut HashMap, Symbol>, [INFO] [stdout] 1145 | | &Workspace, [INFO] [stdout] 1146 | | )>, [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: name `CSE` contains a capitalized acronym [INFO] [stdout] --> src/evaluate.rs:1121:14 [INFO] [stdout] | [INFO] [stdout] 1121 | enum CSE<'a> { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Cse` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/evaluate.rs:1295:13 [INFO] [stdout] | [INFO] [stdout] 1295 | / if common_ops_simple.len() > self.settings.max_common_pair_cache_entries { [INFO] [stdout] 1296 | | if common_ops_simple.len() > self.settings.max_common_pair_cache_entries { [INFO] [stdout] 1297 | | break; [INFO] [stdout] 1298 | | } [INFO] [stdout] 1299 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1295 ~ if common_ops_simple.len() > self.settings.max_common_pair_cache_entries [INFO] [stdout] 1296 ~ && common_ops_simple.len() > self.settings.max_common_pair_cache_entries { [INFO] [stdout] 1297 | break; [INFO] [stdout] 1298 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/evaluate.rs:1301:13 [INFO] [stdout] | [INFO] [stdout] 1301 | / if p % 10000 == 0 { [INFO] [stdout] 1302 | | if let Some(abort_check) = &self.settings.abort_check { [INFO] [stdout] 1303 | | if abort_check() { [INFO] [stdout] 1304 | | self.settings.abort_level = 1; [INFO] [stdout] ... | [INFO] [stdout] 1308 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1301 ~ if p % 10000 == 0 [INFO] [stdout] 1302 ~ && let Some(abort_check) = &self.settings.abort_check { [INFO] [stdout] 1303 | if abort_check() { [INFO] [stdout] ... [INFO] [stdout] 1306 | } [INFO] [stdout] 1307 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/evaluate.rs:1302:17 [INFO] [stdout] | [INFO] [stdout] 1302 | / if let Some(abort_check) = &self.settings.abort_check { [INFO] [stdout] 1303 | | if abort_check() { [INFO] [stdout] 1304 | | self.settings.abort_level = 1; [INFO] [stdout] 1305 | | break; [INFO] [stdout] 1306 | | } [INFO] [stdout] 1307 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1302 ~ if let Some(abort_check) = &self.settings.abort_check [INFO] [stdout] 1303 ~ && abort_check() { [INFO] [stdout] 1304 | self.settings.abort_level = 1; [INFO] [stdout] 1305 | break; [INFO] [stdout] 1306 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/evaluate.rs:185:23 [INFO] [stdout] | [INFO] [stdout] 185 | pub content_rest: Box<(Option>, Option>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/evaluate.rs:256:16 [INFO] [stdout] | [INFO] [stdout] 256 | boxes: &mut Vec< [INFO] [stdout] | ________________^ [INFO] [stdout] 257 | | Box<( [INFO] [stdout] 258 | | Option>, [INFO] [stdout] 259 | | Option>, [INFO] [stdout] 260 | | )>, [INFO] [stdout] 261 | | >, [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/evaluate.rs:345:16 [INFO] [stdout] | [INFO] [stdout] 345 | boxes: &mut Vec< [INFO] [stdout] | ________________^ [INFO] [stdout] 346 | | Box<( [INFO] [stdout] 347 | | Option>, [INFO] [stdout] 348 | | Option>, [INFO] [stdout] 349 | | )>, [INFO] [stdout] 350 | | >, [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: unnecessary use of `get(c).is_none()` [INFO] [stdout] --> src/evaluate.rs:1867:26 [INFO] [stdout] | [INFO] [stdout] 1867 | if constants.get(c).is_none() { [INFO] [stdout] | ----------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!constants.contains_key(c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `last_use` [INFO] [stdout] --> src/evaluate.rs:2064:18 [INFO] [stdout] | [INFO] [stdout] 2064 | for i in 0..self.reserved_indices { [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] 2064 - for i in 0..self.reserved_indices { [INFO] [stdout] 2064 + for in last_use.iter_mut().take(self.reserved_indices) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/evaluate.rs:2728:13 [INFO] [stdout] | [INFO] [stdout] 2728 | !(!self.stack.iter().all(|x| x.is_real()) && number_class == NumberClass::RealF64), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.stack.iter().all(|x| x.is_real()) || number_class != NumberClass::RealF64` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/evaluate.rs:3232:33 [INFO] [stdout] | [INFO] [stdout] 3232 | let mut free_regs = u16::MAX & !(1 << 15); // leave xmmm15 open [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `!(1 << 15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `degrees` [INFO] [stdout] --> src/poly/factor.rs:851:22 [INFO] [stdout] | [INFO] [stdout] 851 | for v in 0..self.nvars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 851 - for v in 0..self.nvars() { [INFO] [stdout] 851 + for (v, ) in degrees.iter_mut().enumerate().take(self.nvars()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `degrees` [INFO] [stdout] --> src/poly/factor.rs:921:18 [INFO] [stdout] | [INFO] [stdout] 921 | for v in 0..self.nvars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 921 - for v in 0..self.nvars() { [INFO] [stdout] 921 + for (v, ) in degrees.iter_mut().enumerate().take(self.nvars()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/poly/factor.rs:1981:5 [INFO] [stdout] | [INFO] [stdout] 1981 | / fn multivariate_diophantine( [INFO] [stdout] 1982 | | univariate_deltas: &[Self], [INFO] [stdout] 1983 | | univariate_factors: &mut [Self], [INFO] [stdout] 1984 | | prods: &[Self], [INFO] [stdout] ... | [INFO] [stdout] 1989 | | mod_vars: &[MultivariatePolynomial], [INFO] [stdout] 1990 | | ) -> Vec { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/poly/factor.rs:2096:5 [INFO] [stdout] | [INFO] [stdout] 2096 | / fn multivariate_hensel_lifting( [INFO] [stdout] 2097 | | &self, [INFO] [stdout] 2098 | | factors: &[Self], [INFO] [stdout] 2099 | | univariate_factors: &mut [Self], [INFO] [stdout] ... | [INFO] [stdout] 2104 | | start_index: usize, [INFO] [stdout] 2105 | | ) -> Vec { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `order` [INFO] [stdout] --> src/poly/factor.rs:2121:30 [INFO] [stdout] | [INFO] [stdout] 2121 | for j in v + 1..order.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 2121 - for j in v + 1..order.len() { [INFO] [stdout] 2121 + for in order.iter().skip(v + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `order` [INFO] [stdout] --> src/poly/factor.rs:2146:22 [INFO] [stdout] | [INFO] [stdout] 2146 | for j in v + 1..order.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 2146 - for j in v + 1..order.len() { [INFO] [stdout] 2146 + for in order.iter().skip(v + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/poly/factor.rs:2199:5 [INFO] [stdout] | [INFO] [stdout] 2199 | / fn multivariate_hensel_step( [INFO] [stdout] 2200 | | &self, [INFO] [stdout] 2201 | | univariate_deltas: &[Self], [INFO] [stdout] 2202 | | univariate_factors: &mut [Self], [INFO] [stdout] ... | [INFO] [stdout] 2207 | | degrees: &mut [usize], [INFO] [stdout] 2208 | | ) -> Vec { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/poly/gcd.rs:377:5 [INFO] [stdout] | [INFO] [stdout] 377 | / fn construct_new_image_single_scale( [INFO] [stdout] 378 | | a: &MultivariatePolynomial, [INFO] [stdout] 379 | | b: &MultivariatePolynomial, [INFO] [stdout] 380 | | a_ldegree: E, [INFO] [stdout] ... | [INFO] [stdout] 386 | | shape: &[(MultivariatePolynomial, E)], [INFO] [stdout] 387 | | ) -> Result, GCDError> { [INFO] [stdout] | |_______________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/poly/gcd.rs:629:5 [INFO] [stdout] | [INFO] [stdout] 629 | / fn construct_new_image_multiple_scales( [INFO] [stdout] 630 | | a: &MultivariatePolynomial, [INFO] [stdout] 631 | | b: &MultivariatePolynomial, [INFO] [stdout] 632 | | a_ldegree: E, [INFO] [stdout] ... | [INFO] [stdout] 637 | | shape: &[(MultivariatePolynomial, E)], [INFO] [stdout] 638 | | ) -> Result, GCDError> { [INFO] [stdout] | |_______________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/evaluate.rs:4328:42 [INFO] [stdout] | [INFO] [stdout] 4328 | ... *out += &format!("\t\t\"addpd %%xmm1, %%xmm0\\n\\t\"\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"\t\t\"addpd %%xmm1, %%xmm0\\n\\t\"\n".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: the loop variable `sample_index` is used to index `samples` [INFO] [stdout] --> src/poly/gcd.rs:853:41 [INFO] [stdout] | [INFO] [stdout] 853 | for sample_index in 0..samples_needed { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 853 - for sample_index in 0..samples_needed { [INFO] [stdout] 853 + for (sample_index, ) in samples.iter().enumerate().take(samples_needed) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/poly/gcd.rs:1358:44 [INFO] [stdout] | [INFO] [stdout] 1358 | for (c, _) in af.into_iter().chain(bf.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/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/iterator.rs:510:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 1358 - for (c, _) in af.into_iter().chain(bf.into_iter()) { [INFO] [stdout] 1358 + for (c, _) in af.into_iter().chain(bf) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `IntegerRing` which implements the `Copy` trait [INFO] [stdout] --> src/poly/gcd.rs:2340:68 [INFO] [stdout] | [INFO] [stdout] 2340 | let gp_i = gp.map_coeff(|c| gp.ring.to_integer(c), self.ring.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.ring` [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: useless conversion to the same type: `numerica::domains::integer::Integer` [INFO] [stdout] --> src/poly/gcd.rs:2341:55 [INFO] [stdout] | [INFO] [stdout] 2341 | gm = gm.chinese_remainder(&gp_i, &m, &gp.ring.get_prime().to_integer().into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `gp.ring.get_prime().to_integer()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/gcd.rs:2955:33 [INFO] [stdout] | [INFO] [stdout] 2955 | let mut coeffs: HashMap<(u32, u32), Vec<(usize, FiniteFieldElement)>> = [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 `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/evaluate.rs:5396:34 [INFO] [stdout] | [INFO] [stdout] 5396 | ... .map(|x| (0..v.get_dimension()).map(move |k| x.index(k))) [INFO] [stdout] | ________________________^ [INFO] [stdout] 5397 | | ... .flatten() [INFO] [stdout] | |________________________________^ help: try replacing `map` with `flat_map` and remove the `.flatten()`: `flat_map(|x| (0..v.get_dimension()).map(move |k| x.index(k)))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/evaluate.rs:5395:61 [INFO] [stdout] | [INFO] [stdout] 5395 | ... .map(|x| get_slot!(slot_map[&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: the loop variable `j` is only used to index `a` [INFO] [stdout] --> src/evaluate.rs:5712:22 [INFO] [stdout] | [INFO] [stdout] 5712 | for j in 0..a.len() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 5712 - for j in 0..a.len() { [INFO] [stdout] 5712 + for in &a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/evaluate.rs:5772:74 [INFO] [stdout] | [INFO] [stdout] 5772 | ... * (num.from_usize(2).inv() - &num.from_usize(p as usize - 1)); [INFO] [stdout] | ^^^^^^^^^^ help: try: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/gcd.rs:3269:10 [INFO] [stdout] | [INFO] [stdout] 3269 | ) -> Option<( [INFO] [stdout] | __________^ [INFO] [stdout] 3270 | | MultivariatePolynomial, [INFO] [stdout] 3271 | | MultivariatePolynomial, [INFO] [stdout] 3272 | | MultivariatePolynomial, [INFO] [stdout] 3273 | | )>; [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: using `clone` on type `Slot` which implements the `Copy` trait [INFO] [stdout] --> src/evaluate.rs:5863:49 [INFO] [stdout] | [INFO] [stdout] 5863 | let b = if i % 2 == 1 { c.clone() } else { s.clone() }; [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `c` [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 `Slot` which implements the `Copy` trait [INFO] [stdout] --> src/evaluate.rs:5863:68 [INFO] [stdout] | [INFO] [stdout] 5863 | let b = if i % 2 == 1 { c.clone() } else { s.clone() }; [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `s` [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 `Slot` which implements the `Copy` trait [INFO] [stdout] --> src/evaluate.rs:5898:49 [INFO] [stdout] | [INFO] [stdout] 5898 | let b = if i % 2 == 1 { s.clone() } else { c.clone() }; [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `s` [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 `Slot` which implements the `Copy` trait [INFO] [stdout] --> src/evaluate.rs:5898:68 [INFO] [stdout] | [INFO] [stdout] 5898 | let b = if i % 2 == 1 { s.clone() } else { c.clone() }; [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `c` [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: taken reference of right operand [INFO] [stdout] --> src/evaluate.rs:6048:71 [INFO] [stdout] | [INFO] [stdout] 6048 | if let Some(c) = self.constants.chunks(self.dim).position(|x| x == &value) { [INFO] [stdout] | ^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | help: use the right value directly: `value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/evaluate.rs:6362:5 [INFO] [stdout] | [INFO] [stdout] 6362 | / fn linearize_impl( [INFO] [stdout] 6363 | | &self, [INFO] [stdout] 6364 | | tree: &Expression>, [INFO] [stdout] 6365 | | subexpressions: &[Expression>], [INFO] [stdout] ... | [INFO] [stdout] 6371 | | reserved_indices: usize, [INFO] [stdout] 6372 | | ) -> usize { [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/groebner.rs:151:14 [INFO] [stdout] | [INFO] [stdout] 151 | tab: &mut Vec<(Vec, Rc>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/groebner.rs:485:16 [INFO] [stdout] | [INFO] [stdout] 485 | basis: &mut Vec<(usize, Rc>)>, [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: methods called `from_*` usually take no `self` [INFO] [stdout] --> src/poly/groebner.rs:629:20 [INFO] [stdout] | [INFO] [stdout] 629 | fn from_larger(&self, element: &Self::LargerField) -> ::Element; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/poly/groebner.rs:630:5 [INFO] [stdout] | [INFO] [stdout] 630 | / fn echelonize( [INFO] [stdout] 631 | | matrix: &mut Vec>, [INFO] [stdout] 632 | | selected_polys: &mut Vec>>, [INFO] [stdout] 633 | | all_monomials: &HashMap, MonomialData>, [INFO] [stdout] ... | [INFO] [stdout] 638 | | print_stats: bool, [INFO] [stdout] 639 | | ); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/evaluate.rs:7550:22 [INFO] [stdout] | [INFO] [stdout] 7550 | h.insert(&*e, self.subexpressions.len() + index); [INFO] [stdout] | ^^^ help: if you would like to reborrow, try removing `&*`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `matrix` [INFO] [stdout] --> src/poly/groebner.rs:723:18 [INFO] [stdout] | [INFO] [stdout] 723 | for r in 0..matrix.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 723 - for r in 0..matrix.len() { [INFO] [stdout] 723 + for (r, ) in matrix.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/evaluate.rs:9671:1 [INFO] [stdout] | [INFO] [stdout] 9671 | / impl ToString for CompileOptions { [INFO] [stdout] 9672 | | /// Convert the compilation options to the string that would be used [INFO] [stdout] 9673 | | /// in the compiler call. [INFO] [stdout] 9674 | | fn to_string(&self) -> String { [INFO] [stdout] ... | [INFO] [stdout] 9703 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/evaluate.rs:9862:9 [INFO] [stdout] | [INFO] [stdout] 9862 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/evaluate.rs:9867:16 [INFO] [stdout] | [INFO] [stdout] 9867 | funcs: &mut Vec<( [INFO] [stdout] | ________________^ [INFO] [stdout] 9868 | | String, [INFO] [stdout] 9869 | | Vec, [INFO] [stdout] 9870 | | SplitExpression>, [INFO] [stdout] 9871 | | )>, [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: suspicious use of `+` in `Sub` impl [INFO] [stdout] --> src/poly/polynomial.rs:1264:14 [INFO] [stdout] | [INFO] [stdout] 1264 | self + &other.clone().neg() // TODO: improve [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `*` in `Div` impl [INFO] [stdout] --> src/evaluate.rs:10646:9 [INFO] [stdout] | [INFO] [stdout] 10646 | / create_hyperdual_from_components!( [INFO] [stdout] 10647 | | Dual, [INFO] [stdout] 10648 | | [ [INFO] [stdout] 10649 | | [0, 0, 0], [INFO] [stdout] ... | [INFO] [stdout] 10659 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stdout] = note: this warning originates in the macro `create_hyperdual_from_components` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `*` in `Div` impl [INFO] [stdout] --> src/evaluate.rs:10646:9 [INFO] [stdout] | [INFO] [stdout] 10646 | / create_hyperdual_from_components!( [INFO] [stdout] 10647 | | Dual, [INFO] [stdout] 10648 | | [ [INFO] [stdout] 10649 | | [0, 0, 0], [INFO] [stdout] ... | [INFO] [stdout] 10659 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stdout] = note: this warning originates in the macro `create_hyperdual_from_components` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `*` in `DivAssign` impl [INFO] [stdout] --> src/evaluate.rs:10646:9 [INFO] [stdout] | [INFO] [stdout] 10646 | / create_hyperdual_from_components!( [INFO] [stdout] 10647 | | Dual, [INFO] [stdout] 10648 | | [ [INFO] [stdout] 10649 | | [0, 0, 0], [INFO] [stdout] ... | [INFO] [stdout] 10659 | | ); [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] = note: this warning originates in the macro `create_hyperdual_from_components` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `*` in `DivAssign` impl [INFO] [stdout] --> src/evaluate.rs:10646:9 [INFO] [stdout] | [INFO] [stdout] 10646 | / create_hyperdual_from_components!( [INFO] [stdout] 10647 | | Dual, [INFO] [stdout] 10648 | | [ [INFO] [stdout] 10649 | | [0, 0, 0], [INFO] [stdout] ... | [INFO] [stdout] 10659 | | ); [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: this warning originates in the macro `create_hyperdual_from_components` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: mutable key type [INFO] [stdout] --> src/poly/polynomial.rs:2832:9 [INFO] [stdout] | [INFO] [stdout] 2832 | let mut cache: HashMap<_, Vec<(usize, usize)>> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: ... because it contains `Key<'_, E>`, which has interior mutability [INFO] [stdout] = note: ... because it contains `&UnsafeCell<(usize, Vec)>`, which has interior mutability [INFO] [stdout] = note: ... because it contains `UnsafeCell<(usize, Vec)>`, which has interior mutability [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutable_key_type [INFO] [stdout] = note: `#[warn(clippy::mutable_key_type)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/id.rs:438:21 [INFO] [stdout] | [INFO] [stdout] 438 | pub fn with_map<'c, R: MatchMap + 'static>(&self, rhs: R) -> Atom { [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: match expression looks like `matches!` macro [INFO] [stdout] --> src/id.rs:726:33 [INFO] [stdout] | [INFO] [stdout] 726 | AtomView::Var(v) => match v.get_symbol_id() { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 727 | | Symbol::PI_ID | Symbol::E_ID => true, [INFO] [stdout] 728 | | _ => false, [INFO] [stdout] 729 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 726 - AtomView::Var(v) => match v.get_symbol_id() { [INFO] [stdout] 727 - Symbol::PI_ID | Symbol::E_ID => true, [INFO] [stdout] 728 - _ => false, [INFO] [stdout] 729 - }, [INFO] [stdout] 726 + AtomView::Var(v) => matches!(v.get_symbol_id(), Symbol::PI_ID | Symbol::E_ID), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `Iterator::fold` on a type that implements `Try` [INFO] [stdout] --> src/id.rs:1375:42 [INFO] [stdout] | [INFO] [stdout] 1375 | let max_level = atom_iter.iter().fold(Some((0, true)), |acc, (_, stack)| { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 1376 | | acc.and_then(|(max_level, tree)| { [INFO] [stdout] 1377 | | stack.settings.level_range.1.map(|level| { [INFO] [stdout] ... | [INFO] [stdout] 1383 | | }) [INFO] [stdout] 1384 | | }); [INFO] [stdout] | |__________^ help: use `try_fold` instead: `try_fold((0, true), |acc, (_, stack)| ...)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_try_fold [INFO] [stdout] = note: `#[warn(clippy::manual_try_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/id.rs:1422:20 [INFO] [stdout] | [INFO] [stdout] 1422 | rhs_cache: &mut HashMap<(usize, Vec<(Symbol, Match<'a>)>), Atom>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/id.rs:1414:5 [INFO] [stdout] | [INFO] [stdout] 1414 | / fn replace_no_norm<'b, T: BorrowReplacement>( [INFO] [stdout] 1415 | | &self, [INFO] [stdout] 1416 | | replacements: &'b [T], [INFO] [stdout] 1417 | | atom_match_iterators: &mut [(AtomMatchIterator<'a, 'b>, WrappedMatchStack<'a, 'b>)], [INFO] [stdout] ... | [INFO] [stdout] 1424 | | out: &mut Settable, [INFO] [stdout] 1425 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/id.rs:1770:5 [INFO] [stdout] | [INFO] [stdout] 1770 | / pub(crate) fn replace_with_ws_into( [INFO] [stdout] 1771 | | &self, [INFO] [stdout] 1772 | | pattern: &Pattern, [INFO] [stdout] 1773 | | rhs: &ReplaceWith, [INFO] [stdout] ... | [INFO] [stdout] 1778 | | out: &mut Atom, [INFO] [stdout] 1779 | | ) -> bool { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/poly/polynomial.rs:4443:45 [INFO] [stdout] | [INFO] [stdout] 4443 | match self.exponents(i).cmp(&other.exponents(j)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `other.exponents(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 `Iterator::fold` on a type that implements `Try` [INFO] [stdout] --> src/id.rs:1800:42 [INFO] [stdout] | [INFO] [stdout] 1800 | let max_level = atom_iter.iter().fold(Some((0, true)), |acc, (_, stack)| { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 1801 | | acc.and_then(|(max_level, tree)| { [INFO] [stdout] 1802 | | stack.settings.level_range.1.map(|level| { [INFO] [stdout] ... | [INFO] [stdout] 1808 | | }) [INFO] [stdout] 1809 | | }); [INFO] [stdout] | |__________^ help: use `try_fold` instead: `try_fold((0, true), |acc, (_, stack)| ...)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_try_fold [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/id.rs:2355:29 [INFO] [stdout] | [INFO] [stdout] 2355 | / ... if let AtomView::Var(v) = a { [INFO] [stdout] 2356 | | ... name = v.get_symbol(); [INFO] [stdout] 2357 | | ... } else { [INFO] [stdout] 2358 | | ... Err(TransformerError::ValueError(format!( [INFO] [stdout] ... | [INFO] [stdout] 2361 | | ... )))?; [INFO] [stdout] 2362 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/id.rs:2354:53 [INFO] [stdout] | [INFO] [stdout] 2354 | } else if let Match::Single(a) = w { [INFO] [stdout] | ^ replace this binding [INFO] [stdout] 2355 | if let AtomView::Var(v) = a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/poly/series.rs:550:6 [INFO] [stdout] | [INFO] [stdout] 550 | impl<'a, R: Ring> IntoIterator for Series { [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: struct `WrappedMatchStack` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/id.rs:3735:5 [INFO] [stdout] | [INFO] [stdout] 3735 | 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: matching on `Some` with `ok()` is redundant [INFO] [stdout] --> src/id.rs:3854:21 [INFO] [stdout] | [INFO] [stdout] 3854 | / if let Some(new_stack_len) = [INFO] [stdout] 3855 | | match_stack.insert(*w, Match::Single(self.target)).ok() [INFO] [stdout] | |_______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_result_ok [INFO] [stdout] = note: `#[warn(clippy::match_result_ok)]` on by default [INFO] [stdout] help: consider matching on `Ok(new_stack_len)` and removing the call to `ok` instead [INFO] [stdout] | [INFO] [stdout] 3854 - if let Some(new_stack_len) = [INFO] [stdout] 3855 - match_stack.insert(*w, Match::Single(self.target)).ok() [INFO] [stdout] 3854 + if let Ok(new_stack_len) = match_stack.insert(*w, Match::Single(self.target)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/univariate.rs:890:10 [INFO] [stdout] | [INFO] [stdout] 890 | ) -> Result, usize)>, Vec<(Complex, usize)>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/univariate.rs:934:10 [INFO] [stdout] | [INFO] [stdout] 934 | ) -> Result, usize)>, Vec<(Complex, usize)>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/id.rs:4463:41 [INFO] [stdout] | [INFO] [stdout] 4463 | / ... if self.processed_iterators < 64 { [INFO] [stdout] 4464 | | ... if w.name.get_wildcard_level() == 1 { [INFO] [stdout] 4465 | | ... self.compatibility_flag[k] |= [INFO] [stdout] 4466 | | ... 1 << (self.processed_iterators - 1) as u64; [INFO] [stdout] 4467 | | ... } [INFO] [stdout] 4468 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 4463 ~ if self.processed_iterators < 64 [INFO] [stdout] 4464 ~ && w.name.get_wildcard_level() == 1 { [INFO] [stdout] 4465 | self.compatibility_flag[k] |= [INFO] [stdout] 4466 | 1 << (self.processed_iterators - 1) as u64; [INFO] [stdout] 4467 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/id.rs:4877:9 [INFO] [stdout] | [INFO] [stdout] 4877 | / match self.next_into(Some(&mut location)) { [INFO] [stdout] 4878 | | Some(atom) => Some((location, atom)), [INFO] [stdout] 4879 | | None => None, [INFO] [stdout] 4880 | | } [INFO] [stdout] | |_________^ help: try: `self.next_into(Some(&mut location)).map(|atom| (location, atom))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/id.rs:5153:21 [INFO] [stdout] | [INFO] [stdout] 5153 | &pattern_match.used_flags, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `pattern_match.used_flags` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/id.rs:5287:13 [INFO] [stdout] | [INFO] [stdout] 5287 | / if context.function_level > 0 { [INFO] [stdout] 5288 | | if arg.expand_into(None, &mut tmp) { [INFO] [stdout] 5289 | | out.set_from_view(&tmp.as_view()); [INFO] [stdout] 5290 | | } [INFO] [stdout] 5291 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 5287 ~ if context.function_level > 0 [INFO] [stdout] 5288 ~ && arg.expand_into(None, &mut tmp) { [INFO] [stdout] 5289 | out.set_from_view(&tmp.as_view()); [INFO] [stdout] 5290 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/poly.rs:817:9 [INFO] [stdout] | [INFO] [stdout] 817 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/poly.rs:1041:9 [INFO] [stdout] | [INFO] [stdout] 1041 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/poly.rs:1177:9 [INFO] [stdout] | [INFO] [stdout] 1177 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/poly.rs:1190:9 [INFO] [stdout] | [INFO] [stdout] 1190 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/poly.rs:1302:9 [INFO] [stdout] | [INFO] [stdout] 1302 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `cmp` can be confused for the standard trait method `std::cmp::Ord::cmp` [INFO] [stdout] --> src/normalize.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | / pub fn cmp(&self, other: &AtomView<'_>) -> Ordering { [INFO] [stdout] 42 | | if self == other { [INFO] [stdout] 43 | | // equality comparison is a fast check [INFO] [stdout] 44 | | return Ordering::Equal; [INFO] [stdout] ... | [INFO] [stdout] 142 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::cmp::Ord` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `numerica::domains::float::Complex` [INFO] [stdout] --> src/normalize.rs:945:41 [INFO] [stdout] | [INFO] [stdout] 945 | ... Complex::new(r.to_float(), i.to_float()).norm().into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Complex::new(r.to_float(), i.to_float()).norm()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/normalize.rs:954:25 [INFO] [stdout] | [INFO] [stdout] 954 | / if id.get_id() == Symbol::ABS_ID { [INFO] [stdout] 955 | | if let Coefficient::Complex(c) = n.get_coeff_view().to_owned() { [INFO] [stdout] 956 | | if c.is_real() { [INFO] [stdout] 957 | | out.to_num(c.re.abs().into()); [INFO] [stdout] ... | [INFO] [stdout] 966 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 954 ~ if id.get_id() == Symbol::ABS_ID [INFO] [stdout] 955 ~ && let Coefficient::Complex(c) = n.get_coeff_view().to_owned() { [INFO] [stdout] 956 | if c.is_real() { [INFO] [stdout] ... [INFO] [stdout] 964 | return; [INFO] [stdout] 965 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/printer.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 306 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/printer.rs:314:39 [INFO] [stdout] | [INFO] [stdout] 314 | pub(crate) fn to_canonical_string(&self) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/printer.rs:322:38 [INFO] [stdout] | [INFO] [stdout] 322 | fn to_canonical_string_symmetric(&self, settings: &CanonicalOrderingSettings) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/normalize.rs:1526:63 [INFO] [stdout] | [INFO] [stdout] 1526 | atom_sort_buf.sort_unstable_by(|a, b| a.1.cmp(&b.1)); [INFO] [stdout] | ^^^^ help: change this to: `b.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: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/printer.rs:432:31 [INFO] [stdout] | [INFO] [stdout] 432 | fn to_canonical_view_impl(&self, settings: &CanonicalOrderingSettings, out: &mut String) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/printer.rs:1136:17 [INFO] [stdout] | [INFO] [stdout] 1136 | / if let AtomView::Num(n) = e { [INFO] [stdout] 1137 | | if let CoefficientView::Natural(num, _, 0, 1) = n.get_coeff_view() { [INFO] [stdout] 1138 | | if num < 0 { [INFO] [stdout] 1139 | | den_count += 1; [INFO] [stdout] ... | [INFO] [stdout] 1147 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1136 ~ if let AtomView::Num(n) = e [INFO] [stdout] 1137 ~ && let CoefficientView::Natural(num, _, 0, 1) = n.get_coeff_view() { [INFO] [stdout] 1138 | if num < 0 { [INFO] [stdout] ... [INFO] [stdout] 1145 | } [INFO] [stdout] 1146 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/printer.rs:1137:21 [INFO] [stdout] | [INFO] [stdout] 1137 | / if let CoefficientView::Natural(num, _, 0, 1) = n.get_coeff_view() { [INFO] [stdout] 1138 | | if num < 0 { [INFO] [stdout] 1139 | | den_count += 1; [INFO] [stdout] ... | [INFO] [stdout] 1146 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1137 ~ if let CoefficientView::Natural(num, _, 0, 1) = n.get_coeff_view() [INFO] [stdout] 1138 ~ && num < 0 { [INFO] [stdout] 1139 | den_count += 1; [INFO] [stdout] ... [INFO] [stdout] 1144 | continue; [INFO] [stdout] 1145 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/parser.rs:460:17 [INFO] [stdout] | [INFO] [stdout] 460 | / if distribute_neg { [INFO] [stdout] 461 | | for a in args { [INFO] [stdout] 462 | | a.distribute_neg(true); [INFO] [stdout] ... | [INFO] [stdout] 466 | | *self = Token::Op(false, false, Operator::Neg, vec![t]); [INFO] [stdout] 467 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 459 ~ Token::Op(_, _, Operator::Add, args) [INFO] [stdout] 460 ~ if distribute_neg => { [INFO] [stdout] 461 | for a in args { [INFO] [stdout] 462 | a.distribute_neg(true); [INFO] [stdout] 463 | } [INFO] [stdout] 464 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parser.rs:526:17 [INFO] [stdout] | [INFO] [stdout] 526 | Err(format!("parenthesis not closed")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"parenthesis not closed".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] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/parser.rs:1047:25 [INFO] [stdout] | [INFO] [stdout] 1047 | let level; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `level` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 1047 ~ [INFO] [stdout] 1048 ~ let level = match wt.as_str() { [INFO] [stdout] 1049 | "Blank" => { [INFO] [stdout] 1050 ~ 1 [INFO] [stdout] 1051 | } [INFO] [stdout] 1052 | "BlankSequence" => { [INFO] [stdout] 1053 ~ 2 [INFO] [stdout] 1054 | } [INFO] [stdout] 1055 | "BlankNullSequence" => { [INFO] [stdout] 1056 ~ 3 [INFO] [stdout] 1057 | } [INFO] [stdout] ... [INFO] [stdout] 1060 | } [INFO] [stdout] 1061 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/solve.rs:269:10 [INFO] [stdout] | [INFO] [stdout] 269 | ) -> Result< [INFO] [stdout] | __________^ [INFO] [stdout] 270 | | ( [INFO] [stdout] 271 | | Matrix>, [INFO] [stdout] 272 | | Matrix>, [INFO] [stdout] 273 | | ), [INFO] [stdout] 274 | | String, [INFO] [stdout] 275 | | > { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/solve.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 291 | ) -> Result< [INFO] [stdout] | __________^ [INFO] [stdout] 292 | | ( [INFO] [stdout] 293 | | Matrix>, [INFO] [stdout] 294 | | Matrix>, [INFO] [stdout] 295 | | ), [INFO] [stdout] 296 | | String, [INFO] [stdout] 297 | | > { [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: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/solve.rs:305:26 [INFO] [stdout] | [INFO] [stdout] 305 | .map(|x| Ok(x.to_owned().try_into()?)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 305 - .map(|x| Ok(x.to_owned().try_into()?)) [INFO] [stdout] 305 + .map(|x| x.to_owned().try_into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/parser.rs:1142:24 [INFO] [stdout] | [INFO] [stdout] 1142 | mut atom_info: Option<( [INFO] [stdout] | ________________________^ [INFO] [stdout] 1143 | | &DefaultNamespace, [INFO] [stdout] 1144 | | &mut HashMap, Symbol>, [INFO] [stdout] 1145 | | &Workspace, [INFO] [stdout] 1146 | | )>, [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: redundant closure [INFO] [stdout] --> src/solve.rs:394:26 [INFO] [stdout] | [INFO] [stdout] 394 | .map_err(|e| SolveError::Other(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `SolveError::Other` [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: redundant closure [INFO] [stdout] --> src/solve.rs:415:22 [INFO] [stdout] | [INFO] [stdout] 415 | .map_err(|e| SolveError::Other(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `SolveError::Other` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/solve.rs:419:58 [INFO] [stdout] | [INFO] [stdout] 419 | Ok(sol) => Ok(sol.into_vec().into_iter().map(|s| Atom::num(s)).collect()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Atom::num` [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: the loop variable `i` is only used to index `vars` [INFO] [stdout] --> src/solve.rs:518:26 [INFO] [stdout] | [INFO] [stdout] 518 | for i in var_index as usize..vars.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 518 - for i in var_index as usize..vars.len() { [INFO] [stdout] 518 + for in vars.iter().skip(var_index as usize) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/state.rs:351:5 [INFO] [stdout] | [INFO] [stdout] 351 | pub unsafe fn reset() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] = note: `#[warn(clippy::missing_safety_doc)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/state.rs:496:5 [INFO] [stdout] | [INFO] [stdout] 496 | / pub(crate) fn get_symbol_with_attributes( [INFO] [stdout] 497 | | &mut self, [INFO] [stdout] 498 | | name: NamespacedSymbol, [INFO] [stdout] 499 | | attributes: &[SymbolAttribute], [INFO] [stdout] ... | [INFO] [stdout] 505 | | user_data: Option, [INFO] [stdout] 506 | | ) -> Result { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/state.rs:900:22 [INFO] [stdout] | [INFO] [stdout] 900 | conflict_fn: Option String>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/evaluate.rs:185:23 [INFO] [stdout] | [INFO] [stdout] 185 | pub content_rest: Box<(Option>, Option>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/evaluate.rs:256:16 [INFO] [stdout] | [INFO] [stdout] 256 | boxes: &mut Vec< [INFO] [stdout] | ________________^ [INFO] [stdout] 257 | | Box<( [INFO] [stdout] 258 | | Option>, [INFO] [stdout] 259 | | Option>, [INFO] [stdout] 260 | | )>, [INFO] [stdout] 261 | | >, [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/evaluate.rs:345:16 [INFO] [stdout] | [INFO] [stdout] 345 | boxes: &mut Vec< [INFO] [stdout] | ________________^ [INFO] [stdout] 346 | | Box<( [INFO] [stdout] 347 | | Option>, [INFO] [stdout] 348 | | Option>, [INFO] [stdout] 349 | | )>, [INFO] [stdout] 350 | | >, [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/streaming.rs:312:22 [INFO] [stdout] | [INFO] [stdout] 312 | conflict_fn: Option SmartString>>, [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: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/tensors.rs:127:50 [INFO] [stdout] | [INFO] [stdout] 127 | for ((used, count), i) in ind.iter().zip(orig_indices.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/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 127 - for ((used, count), i) in ind.iter().zip(orig_indices.into_iter()) { [INFO] [stdout] 127 + for ((used, count), i) in ind.iter().zip(orig_indices) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `borrow` can be confused for the standard trait method `std::borrow::Borrow::borrow` [INFO] [stdout] --> src/utils.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | / pub fn borrow(&self) -> &T { [INFO] [stdout] 79 | | match self { [INFO] [stdout] 80 | | BorrowedOrOwned::Owned(t) => t, [INFO] [stdout] 81 | | BorrowedOrOwned::Borrowed(t) => t, [INFO] [stdout] 82 | | } [INFO] [stdout] 83 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::borrow::Borrow` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `degrees` [INFO] [stdout] --> src/poly/factor.rs:851:22 [INFO] [stdout] | [INFO] [stdout] 851 | for v in 0..self.nvars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 851 - for v in 0..self.nvars() { [INFO] [stdout] 851 + for (v, ) in degrees.iter_mut().enumerate().take(self.nvars()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `degrees` [INFO] [stdout] --> src/poly/factor.rs:921:18 [INFO] [stdout] | [INFO] [stdout] 921 | for v in 0..self.nvars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 921 - for v in 0..self.nvars() { [INFO] [stdout] 921 + for (v, ) in degrees.iter_mut().enumerate().take(self.nvars()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/poly/factor.rs:1981:5 [INFO] [stdout] | [INFO] [stdout] 1981 | / fn multivariate_diophantine( [INFO] [stdout] 1982 | | univariate_deltas: &[Self], [INFO] [stdout] 1983 | | univariate_factors: &mut [Self], [INFO] [stdout] 1984 | | prods: &[Self], [INFO] [stdout] ... | [INFO] [stdout] 1989 | | mod_vars: &[MultivariatePolynomial], [INFO] [stdout] 1990 | | ) -> Vec { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/poly/factor.rs:2096:5 [INFO] [stdout] | [INFO] [stdout] 2096 | / fn multivariate_hensel_lifting( [INFO] [stdout] 2097 | | &self, [INFO] [stdout] 2098 | | factors: &[Self], [INFO] [stdout] 2099 | | univariate_factors: &mut [Self], [INFO] [stdout] ... | [INFO] [stdout] 2104 | | start_index: usize, [INFO] [stdout] 2105 | | ) -> Vec { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `order` [INFO] [stdout] --> src/poly/factor.rs:2121:30 [INFO] [stdout] | [INFO] [stdout] 2121 | for j in v + 1..order.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 2121 - for j in v + 1..order.len() { [INFO] [stdout] 2121 + for in order.iter().skip(v + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `order` [INFO] [stdout] --> src/poly/factor.rs:2146:22 [INFO] [stdout] | [INFO] [stdout] 2146 | for j in v + 1..order.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 2146 - for j in v + 1..order.len() { [INFO] [stdout] 2146 + for in order.iter().skip(v + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/poly/factor.rs:2199:5 [INFO] [stdout] | [INFO] [stdout] 2199 | / fn multivariate_hensel_step( [INFO] [stdout] 2200 | | &self, [INFO] [stdout] 2201 | | univariate_deltas: &[Self], [INFO] [stdout] 2202 | | univariate_factors: &mut [Self], [INFO] [stdout] ... | [INFO] [stdout] 2207 | | degrees: &mut [usize], [INFO] [stdout] 2208 | | ) -> Vec { [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/poly/gcd.rs:377:5 [INFO] [stdout] | [INFO] [stdout] 377 | / fn construct_new_image_single_scale( [INFO] [stdout] 378 | | a: &MultivariatePolynomial, [INFO] [stdout] 379 | | b: &MultivariatePolynomial, [INFO] [stdout] 380 | | a_ldegree: E, [INFO] [stdout] ... | [INFO] [stdout] 386 | | shape: &[(MultivariatePolynomial, E)], [INFO] [stdout] 387 | | ) -> Result, GCDError> { [INFO] [stdout] | |_______________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/poly/gcd.rs:629:5 [INFO] [stdout] | [INFO] [stdout] 629 | / fn construct_new_image_multiple_scales( [INFO] [stdout] 630 | | a: &MultivariatePolynomial, [INFO] [stdout] 631 | | b: &MultivariatePolynomial, [INFO] [stdout] 632 | | a_ldegree: E, [INFO] [stdout] ... | [INFO] [stdout] 637 | | shape: &[(MultivariatePolynomial, E)], [INFO] [stdout] 638 | | ) -> Result, GCDError> { [INFO] [stdout] | |_______________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `sample_index` is used to index `samples` [INFO] [stdout] --> src/poly/gcd.rs:853:41 [INFO] [stdout] | [INFO] [stdout] 853 | for sample_index in 0..samples_needed { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 853 - for sample_index in 0..samples_needed { [INFO] [stdout] 853 + for (sample_index, ) in samples.iter().enumerate().take(samples_needed) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/poly/gcd.rs:1358:44 [INFO] [stdout] | [INFO] [stdout] 1358 | for (c, _) in af.into_iter().chain(bf.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/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/iterator.rs:510:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 1358 - for (c, _) in af.into_iter().chain(bf.into_iter()) { [INFO] [stdout] 1358 + for (c, _) in af.into_iter().chain(bf) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `symbolica::id::::filter`: Use filter_single or filter_match [INFO] [stdout] --> tests/pattern_matching.rs:17:38 [INFO] [stdout] | [INFO] [stdout] 17 | let restrictions = symbol!("x_").filter(|v: &Match| match v { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `IntegerRing` which implements the `Copy` trait [INFO] [stdout] --> src/poly/gcd.rs:2340:68 [INFO] [stdout] | [INFO] [stdout] 2340 | let gp_i = gp.map_coeff(|c| gp.ring.to_integer(c), self.ring.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.ring` [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: useless conversion to the same type: `numerica::domains::integer::Integer` [INFO] [stdout] --> src/poly/gcd.rs:2341:55 [INFO] [stdout] | [INFO] [stdout] 2341 | gm = gm.chinese_remainder(&gp_i, &m, &gp.ring.get_prime().to_integer().into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `gp.ring.get_prime().to_integer()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> examples/numerical_integration.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | / if let Sample::Discrete(_weight, i, cont_sample) = &sample { [INFO] [stdout] 32 | | if let Sample::Continuous(_cont_weight, xs) = cont_sample.as_ref().unwrap().as_ref() [INFO] [stdout] 33 | | { [INFO] [stdout] 34 | | grid.add_training_sample(&sample, fs[*i](xs[0])).unwrap(); [INFO] [stdout] 35 | | } [INFO] [stdout] 36 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 31 ~ if let Sample::Discrete(_weight, i, cont_sample) = &sample [INFO] [stdout] 32 ~ && let Sample::Continuous(_cont_weight, xs) = cont_sample.as_ref().unwrap().as_ref() [INFO] [stdout] 33 | { [INFO] [stdout] 34 | grid.add_training_sample(&sample, fs[*i](xs[0])).unwrap(); [INFO] [stdout] 35 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `symbolica::id::::filter`: Use filter_single or filter_match [INFO] [stdout] --> examples/fibonacci.rs:16:38 [INFO] [stdout] | [INFO] [stdout] 16 | let restrictions = symbol!("x_").filter(|v: &Match| v.to_atom() > 1); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `symbolica::atom::Atom::npow`: Use Atom::pow() instead with a numerical argument for the exponent. [INFO] [stdout] --> examples/builder.rs:8:37 [INFO] [stdout] | [INFO] [stdout] 8 | let xb = (-(y + x + 2) * y * 6).npow(5) / y * f / 4; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/gcd.rs:2955:33 [INFO] [stdout] | [INFO] [stdout] 2955 | let mut coeffs: HashMap<(u32, u32), Vec<(usize, FiniteFieldElement)>> = [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: constants have by default a `'static` lifetime [INFO] [stdout] --> tests/evaluation.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | const F13: &'static str = "-48*ammu*amuq*ammu2*amuq2*x6*xcp4*e1234-48*ammu*amuq*ammu2*amuq2*x6*xcp3*e1234+48*ammu*amuq*ammu2*amuq2*x... [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/gcd.rs:3269:10 [INFO] [stdout] | [INFO] [stdout] 3269 | ) -> Option<( [INFO] [stdout] | __________^ [INFO] [stdout] 3270 | | MultivariatePolynomial, [INFO] [stdout] 3271 | | MultivariatePolynomial, [INFO] [stdout] 3272 | | MultivariatePolynomial, [INFO] [stdout] 3273 | | )>; [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/groebner.rs:151:14 [INFO] [stdout] | [INFO] [stdout] 151 | tab: &mut Vec<(Vec, Rc>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/groebner.rs:485:16 [INFO] [stdout] | [INFO] [stdout] 485 | basis: &mut Vec<(usize, Rc>)>, [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: methods called `from_*` usually take no `self` [INFO] [stdout] --> src/poly/groebner.rs:629:20 [INFO] [stdout] | [INFO] [stdout] 629 | fn from_larger(&self, element: &Self::LargerField) -> ::Element; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/poly/groebner.rs:630:5 [INFO] [stdout] | [INFO] [stdout] 630 | / fn echelonize( [INFO] [stdout] 631 | | matrix: &mut Vec>, [INFO] [stdout] 632 | | selected_polys: &mut Vec>>, [INFO] [stdout] 633 | | all_monomials: &HashMap, MonomialData>, [INFO] [stdout] ... | [INFO] [stdout] 638 | | print_stats: bool, [INFO] [stdout] 639 | | ); [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `matrix` [INFO] [stdout] --> src/poly/groebner.rs:723:18 [INFO] [stdout] | [INFO] [stdout] 723 | for r in 0..matrix.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 723 - for r in 0..matrix.len() { [INFO] [stdout] 723 + for (r, ) in matrix.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `*` in `Div` impl [INFO] [stdout] --> examples/dual.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | / create_hyperdual_from_components!( [INFO] [stdout] 7 | | Dual, [INFO] [stdout] 8 | | [ [INFO] [stdout] 9 | | [0, 0, 0], [INFO] [stdout] ... | [INFO] [stdout] 19 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stdout] = note: `#[warn(clippy::suspicious_arithmetic_impl)]` on by default [INFO] [stdout] = note: this warning originates in the macro `create_hyperdual_from_components` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `*` in `Div` impl [INFO] [stdout] --> examples/dual.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | / create_hyperdual_from_components!( [INFO] [stdout] 7 | | Dual, [INFO] [stdout] 8 | | [ [INFO] [stdout] 9 | | [0, 0, 0], [INFO] [stdout] ... | [INFO] [stdout] 19 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stdout] = note: this warning originates in the macro `create_hyperdual_from_components` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `*` in `DivAssign` impl [INFO] [stdout] --> examples/dual.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | / create_hyperdual_from_components!( [INFO] [stdout] 7 | | Dual, [INFO] [stdout] 8 | | [ [INFO] [stdout] 9 | | [0, 0, 0], [INFO] [stdout] ... | [INFO] [stdout] 19 | | ); [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] = note: this warning originates in the macro `create_hyperdual_from_components` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `*` in `DivAssign` impl [INFO] [stdout] --> examples/dual.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | / create_hyperdual_from_components!( [INFO] [stdout] 7 | | Dual, [INFO] [stdout] 8 | | [ [INFO] [stdout] 9 | | [0, 0, 0], [INFO] [stdout] ... | [INFO] [stdout] 19 | | ); [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: this warning originates in the macro `create_hyperdual_from_components` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: suspicious use of `+` in `Sub` impl [INFO] [stdout] --> src/poly/polynomial.rs:1264:14 [INFO] [stdout] | [INFO] [stdout] 1264 | self + &other.clone().neg() // TODO: improve [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: mutable key type [INFO] [stdout] --> src/poly/polynomial.rs:2832:9 [INFO] [stdout] | [INFO] [stdout] 2832 | let mut cache: HashMap<_, Vec<(usize, usize)>> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: ... because it contains `Key<'_, E>`, which has interior mutability [INFO] [stdout] = note: ... because it contains `&UnsafeCell<(usize, Vec)>`, which has interior mutability [INFO] [stdout] = note: ... because it contains `UnsafeCell<(usize, Vec)>`, which has interior mutability [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutable_key_type [INFO] [stdout] = note: `#[warn(clippy::mutable_key_type)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/poly/polynomial.rs:4443:45 [INFO] [stdout] | [INFO] [stdout] 4443 | match self.exponents(i).cmp(&other.exponents(j)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `other.exponents(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: useless conversion to the same type: `u8` [INFO] [stdout] --> src/poly/polynomial.rs:4656:45 [INFO] [stdout] | [INFO] [stdout] 4656 | let c = b_rev.inverse_univariate(0, 2.into()); [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/poly/series.rs:550:6 [INFO] [stdout] | [INFO] [stdout] 550 | impl<'a, R: Ring> IntoIterator for Series { [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/univariate.rs:890:10 [INFO] [stdout] | [INFO] [stdout] 890 | ) -> Result, usize)>, Vec<(Complex, usize)>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/poly/univariate.rs:934:10 [INFO] [stdout] | [INFO] [stdout] 934 | ) -> Result, usize)>, Vec<(Complex, usize)>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/poly.rs:817:9 [INFO] [stdout] | [INFO] [stdout] 817 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/poly.rs:1041:9 [INFO] [stdout] | [INFO] [stdout] 1041 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/poly.rs:1177:9 [INFO] [stdout] | [INFO] [stdout] 1177 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/poly.rs:1190:9 [INFO] [stdout] | [INFO] [stdout] 1190 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/poly.rs:1302:9 [INFO] [stdout] | [INFO] [stdout] 1302 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/printer.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 306 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/printer.rs:314:39 [INFO] [stdout] | [INFO] [stdout] 314 | pub(crate) fn to_canonical_string(&self) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/printer.rs:322:38 [INFO] [stdout] | [INFO] [stdout] 322 | fn to_canonical_string_symmetric(&self, settings: &CanonicalOrderingSettings) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/printer.rs:432:31 [INFO] [stdout] | [INFO] [stdout] 432 | fn to_canonical_view_impl(&self, settings: &CanonicalOrderingSettings, out: &mut String) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/printer.rs:1136:17 [INFO] [stdout] | [INFO] [stdout] 1136 | / if let AtomView::Num(n) = e { [INFO] [stdout] 1137 | | if let CoefficientView::Natural(num, _, 0, 1) = n.get_coeff_view() { [INFO] [stdout] 1138 | | if num < 0 { [INFO] [stdout] 1139 | | den_count += 1; [INFO] [stdout] ... | [INFO] [stdout] 1147 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1136 ~ if let AtomView::Num(n) = e [INFO] [stdout] 1137 ~ && let CoefficientView::Natural(num, _, 0, 1) = n.get_coeff_view() { [INFO] [stdout] 1138 | if num < 0 { [INFO] [stdout] ... [INFO] [stdout] 1145 | } [INFO] [stdout] 1146 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/printer.rs:1137:21 [INFO] [stdout] | [INFO] [stdout] 1137 | / if let CoefficientView::Natural(num, _, 0, 1) = n.get_coeff_view() { [INFO] [stdout] 1138 | | if num < 0 { [INFO] [stdout] 1139 | | den_count += 1; [INFO] [stdout] ... | [INFO] [stdout] 1146 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1137 ~ if let CoefficientView::Natural(num, _, 0, 1) = n.get_coeff_view() [INFO] [stdout] 1138 ~ && num < 0 { [INFO] [stdout] 1139 | den_count += 1; [INFO] [stdout] ... [INFO] [stdout] 1144 | continue; [INFO] [stdout] 1145 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/solve.rs:269:10 [INFO] [stdout] | [INFO] [stdout] 269 | ) -> Result< [INFO] [stdout] | __________^ [INFO] [stdout] 270 | | ( [INFO] [stdout] 271 | | Matrix>, [INFO] [stdout] 272 | | Matrix>, [INFO] [stdout] 273 | | ), [INFO] [stdout] 274 | | String, [INFO] [stdout] 275 | | > { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/solve.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 291 | ) -> Result< [INFO] [stdout] | __________^ [INFO] [stdout] 292 | | ( [INFO] [stdout] 293 | | Matrix>, [INFO] [stdout] 294 | | Matrix>, [INFO] [stdout] 295 | | ), [INFO] [stdout] 296 | | String, [INFO] [stdout] 297 | | > { [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: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/solve.rs:305:26 [INFO] [stdout] | [INFO] [stdout] 305 | .map(|x| Ok(x.to_owned().try_into()?)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 305 - .map(|x| Ok(x.to_owned().try_into()?)) [INFO] [stdout] 305 + .map(|x| x.to_owned().try_into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/solve.rs:394:26 [INFO] [stdout] | [INFO] [stdout] 394 | .map_err(|e| SolveError::Other(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `SolveError::Other` [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: redundant closure [INFO] [stdout] --> src/solve.rs:415:22 [INFO] [stdout] | [INFO] [stdout] 415 | .map_err(|e| SolveError::Other(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `SolveError::Other` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/solve.rs:419:58 [INFO] [stdout] | [INFO] [stdout] 419 | Ok(sol) => Ok(sol.into_vec().into_iter().map(|s| Atom::num(s)).collect()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Atom::num` [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: the loop variable `i` is only used to index `vars` [INFO] [stdout] --> src/solve.rs:518:26 [INFO] [stdout] | [INFO] [stdout] 518 | for i in var_index as usize..vars.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 518 - for i in var_index as usize..vars.len() { [INFO] [stdout] 518 + for in vars.iter().skip(var_index as usize) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/state.rs:351:5 [INFO] [stdout] | [INFO] [stdout] 351 | pub unsafe fn reset() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] = note: `#[warn(clippy::missing_safety_doc)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/state.rs:496:5 [INFO] [stdout] | [INFO] [stdout] 496 | / pub(crate) fn get_symbol_with_attributes( [INFO] [stdout] 497 | | &mut self, [INFO] [stdout] 498 | | name: NamespacedSymbol, [INFO] [stdout] 499 | | attributes: &[SymbolAttribute], [INFO] [stdout] ... | [INFO] [stdout] 505 | | user_data: Option, [INFO] [stdout] 506 | | ) -> Result { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/state.rs:900:22 [INFO] [stdout] | [INFO] [stdout] 900 | conflict_fn: Option String>>, [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 `if` statement can be collapsed [INFO] [stdout] --> src/state.rs:1329:17 [INFO] [stdout] | [INFO] [stdout] 1329 | / if let AtomView::Fun(f) = input { [INFO] [stdout] 1330 | | if f.get_nargs() == 1 { [INFO] [stdout] 1331 | | let arg = f.iter().next().unwrap(); [INFO] [stdout] 1332 | | if let AtomView::Fun(f2) = arg { [INFO] [stdout] ... | [INFO] [stdout] 1338 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1329 ~ if let AtomView::Fun(f) = input [INFO] [stdout] 1330 ~ && f.get_nargs() == 1 { [INFO] [stdout] 1331 | let arg = f.iter().next().unwrap(); [INFO] [stdout] ... [INFO] [stdout] 1336 | } [INFO] [stdout] 1337 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/state.rs:1332:25 [INFO] [stdout] | [INFO] [stdout] 1332 | / if let AtomView::Fun(f2) = arg { [INFO] [stdout] 1333 | | if f2.get_symbol() == Symbol::EXP && f2.get_nargs() == 1 { [INFO] [stdout] 1334 | | out.set_from_view(&f2.iter().next().unwrap()); [INFO] [stdout] 1335 | | } [INFO] [stdout] 1336 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1332 ~ if let AtomView::Fun(f2) = arg [INFO] [stdout] 1333 ~ && f2.get_symbol() == Symbol::EXP && f2.get_nargs() == 1 { [INFO] [stdout] 1334 | out.set_from_view(&f2.iter().next().unwrap()); [INFO] [stdout] 1335 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/streaming.rs:312:22 [INFO] [stdout] | [INFO] [stdout] 312 | conflict_fn: Option SmartString>>, [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: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/tensors.rs:127:50 [INFO] [stdout] | [INFO] [stdout] 127 | for ((used, count), i) in ind.iter().zip(orig_indices.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/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 127 - for ((used, count), i) in ind.iter().zip(orig_indices.into_iter()) { [INFO] [stdout] 127 + for ((used, count), i) in ind.iter().zip(orig_indices) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `borrow` can be confused for the standard trait method `std::borrow::Borrow::borrow` [INFO] [stdout] --> src/utils.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | / pub fn borrow(&self) -> &T { [INFO] [stdout] 79 | | match self { [INFO] [stdout] 80 | | BorrowedOrOwned::Owned(t) => t, [INFO] [stdout] 81 | | BorrowedOrOwned::Borrowed(t) => t, [INFO] [stdout] 82 | | } [INFO] [stdout] 83 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::borrow::Borrow` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/evaluate.rs:10631:21 [INFO] [stdout] | [INFO] [stdout] 10631 | &vec![crate::parse!("x"), crate::parse!("y"), crate::parse!("z")], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[crate::parse!("x"), crate::parse!("y"), crate::parse!("z")]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 21s [INFO] running `Command { std: "docker" "inspect" "ee276e202ab46cdd321fa6578d57d7a9465c8463a34f673f3fef2ce3b62219e4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ee276e202ab46cdd321fa6578d57d7a9465c8463a34f673f3fef2ce3b62219e4", kill_on_drop: false }` [INFO] [stdout] ee276e202ab46cdd321fa6578d57d7a9465c8463a34f673f3fef2ce3b62219e4