[INFO] cloning repository https://github.com/CyclotomicFields/cyclotomic
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/CyclotomicFields/cyclotomic" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCyclotomicFields%2Fcyclotomic", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCyclotomicFields%2Fcyclotomic'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e7e3bcb81e027d46b14d7ead64bc589093ecb7fd
[INFO] checking CyclotomicFields/cyclotomic against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCyclotomicFields%2Fcyclotomic" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/CyclotomicFields/cyclotomic
[INFO] finished tweaking git repo https://github.com/CyclotomicFields/cyclotomic
[INFO] tweaked toml for git repo https://github.com/CyclotomicFields/cyclotomic written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/CyclotomicFields/cyclotomic on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/CyclotomicFields/cyclotomic 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sexp v1.1.4
[INFO] [stderr]   Downloaded combinations v0.1.0
[INFO] [stderr]   Downloaded clap_derive v3.2.17
[INFO] [stderr]   Downloaded antic v0.1.0
[INFO] [stderr]   Downloaded bitvec v0.19.6
[INFO] [stderr]   Downloaded nom v6.2.1
[INFO] [stderr]   Downloaded clap v3.2.17
[INFO] [stderr]   Downloaded regex v1.4.6
[INFO] [stderr]   Downloaded rug v1.17.0
[INFO] [stderr]   Downloaded divisors v0.2.1
[INFO] [stderr]   Downloaded gmp-mpfr-sys v1.4.10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 38af18daf82a02896ff282f47ffb978a6ae3c321b6e2b075df86c9b76cfb9679
[INFO] running `Command { std: "docker" "start" "-a" "38af18daf82a02896ff282f47ffb978a6ae3c321b6e2b075df86c9b76cfb9679", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "38af18daf82a02896ff282f47ffb978a6ae3c321b6e2b075df86c9b76cfb9679", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "38af18daf82a02896ff282f47ffb978a6ae3c321b6e2b075df86c9b76cfb9679", kill_on_drop: false }`
[INFO] [stdout] 38af18daf82a02896ff282f47ffb978a6ae3c321b6e2b075df86c9b76cfb9679
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8e6196f30245c7bf25a36d24d598784d1f91a004b4552abae7f774568268e943
[INFO] running `Command { std: "docker" "start" "-a" "8e6196f30245c7bf25a36d24d598784d1f91a004b4552abae7f774568268e943", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.43
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]    Compiling libc v0.2.132
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling gmp-mpfr-sys v1.4.10
[INFO] [stderr]    Compiling radium v0.5.3
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stderr]    Compiling az v1.2.1
[INFO] [stderr]    Compiling lexical-core v0.7.6
[INFO] [stderr]     Checking regex-syntax v0.6.27
[INFO] [stderr]    Compiling nom v6.2.1
[INFO] [stderr]    Compiling rug v1.17.0
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]     Checking wyz v0.2.0
[INFO] [stderr]     Checking ryu v1.0.11
[INFO] [stderr]     Checking funty v1.1.0
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking os_str_bytes v6.3.0
[INFO] [stderr]     Checking aho-corasick v0.7.15
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking textwrap v0.15.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking once_cell v1.13.1
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking combinations v0.1.0
[INFO] [stderr]     Checking sexp v1.1.4
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]     Checking bitvec v0.19.6
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling antic v0.1.0
[INFO] [stderr]     Checking regex v1.4.6
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]     Checking divisors v0.2.1
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking quickcheck v0.9.2
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling clap_derive v3.2.17
[INFO] [stderr]    Compiling quickcheck_macros v0.9.1
[INFO] [stderr]     Checking clap v3.2.17
[INFO] [stderr]     Checking cyclotomic v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `BigInt`, `BigRational`, `Signed`, and `ToPrimitive`
[INFO] [stdout]  --> src/divisors/euclid.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use self::num::{BigInt, BigRational, Integer, One, Signed, ToPrimitive, Zero};
[INFO] [stdout]   |                 ^^^^^^  ^^^^^^^^^^^                ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BigInt`
[INFO] [stdout]  --> src/divisors/library_divisors.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use self::num::{BigInt, ToPrimitive, Zero};
[INFO] [stdout]   |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Z`
[INFO] [stdout]  --> src/polynomial/substitute.rs:4:52
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::polynomial::polynomial::{Polynomial, Q, Z};
[INFO] [stdout]   |                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::BigInt`
[INFO] [stdout]  --> src/prime_factors/recursive_prime_factorize.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num::BigInt;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Integer`
[INFO] [stdout]  --> src/fields/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num::Integer;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `One`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use num::traits::Inv;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign` and `SubAssign`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExpCoeffMap`
[INFO] [stdout]  --> src/fields/sparse/add.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::sparse::{ExpCoeffMap, Number};
[INFO] [stdout]   |                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Q` and `Z`
[INFO] [stdout]  --> src/fields/sparse/add.rs:4:67
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                   ^  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::AddAssign`
[INFO] [stdout]  --> src/fields/sparse/add.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::AddAssign;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Q`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:4:73
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{CyclotomicFieldElement, MultiplicativeGroupElement, Q};
[INFO] [stdout]   |                                                                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_i64` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:276:6
[INFO] [stdout]     |
[INFO] [stdout] 276 | type Number_i64 = Number<i64, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^^^ help: convert the identifier to upper camel case: `NumberI64`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_Z` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:277:6
[INFO] [stdout]     |
[INFO] [stdout] 277 | type Number_Z = Number<Z, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^ help: convert the identifier to upper camel case: `NumberZ`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One` and `Zero`
[INFO] [stdout]  --> src/fields/dense/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]  --> src/fields/dense/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num::traits::Inv;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign` and `SubAssign`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::*`
[INFO] [stdout]   --> src/fields/dense/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::fields::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::exponent::Exponent`
[INFO] [stdout]   --> src/fields/dense/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::fields::exponent::Exponent;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Z`
[INFO] [stdout]  --> src/fields/dense/add.rs:2:70
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/dense/galois.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/structure/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Zero`
[INFO] [stdout]  --> src/fields/structure/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FieldElement`
[INFO] [stdout]  --> src/fields/linear_algebra/mod.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::fields::{CyclotomicFieldElement, FieldElement};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign` and `MulAssign`
[INFO] [stdout]  --> src/fields/rational.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::{AddAssign, MulAssign};
[INFO] [stdout]   |                ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::Q`
[INFO] [stdout]  --> src/character/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::Q;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `BigRational`, `Signed`, and `ToPrimitive`
[INFO] [stdout]  --> src/divisors/euclid.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use self::num::{BigInt, BigRational, Integer, One, Signed, ToPrimitive, Zero};
[INFO] [stdout]   |                 ^^^^^^  ^^^^^^^^^^^                ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/polynomial/construct.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/polynomial/negate.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/prime_counter/legendre.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |     use std::path::Path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/prime_counter/lehmer.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     use std::path::Path;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/prime_counter/meissel.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     use std::path::Path;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/primes/primes.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |     use std::path::Path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Integer`
[INFO] [stdout]  --> src/fields/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num::Integer;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `One`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use num::traits::Inv;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign` and `SubAssign`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExpCoeffMap`
[INFO] [stdout]  --> src/fields/sparse/add.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::sparse::{ExpCoeffMap, Number};
[INFO] [stdout]   |                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Q` and `Z`
[INFO] [stdout]  --> src/fields/sparse/add.rs:4:67
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                   ^  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::AddAssign`
[INFO] [stdout]  --> src/fields/sparse/add.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::AddAssign;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Q`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:4:73
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{CyclotomicFieldElement, MultiplicativeGroupElement, Q};
[INFO] [stdout]   |                                                                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_i64` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:276:6
[INFO] [stdout]     |
[INFO] [stdout] 276 | type Number_i64 = Number<i64, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^^^ help: convert the identifier to upper camel case: `NumberI64`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_Z` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:277:6
[INFO] [stdout]     |
[INFO] [stdout] 277 | type Number_Z = Number<Z, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^ help: convert the identifier to upper camel case: `NumberZ`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One` and `Zero`
[INFO] [stdout]  --> src/fields/dense/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]  --> src/fields/dense/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num::traits::Inv;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign` and `SubAssign`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::exponent::Exponent`
[INFO] [stdout]   --> src/fields/dense/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::fields::exponent::Exponent;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Z`
[INFO] [stdout]  --> src/fields/dense/add.rs:2:70
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/dense/galois.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/structure/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FieldElement`
[INFO] [stdout]  --> src/fields/linear_algebra/mod.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::fields::{CyclotomicFieldElement, FieldElement};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign` and `MulAssign`
[INFO] [stdout]  --> src/fields/rational.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::{AddAssign, MulAssign};
[INFO] [stdout]   |                ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::Q`
[INFO] [stdout]  --> src/character/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::Q;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` attribute cannot be used on use statements
[INFO] [stdout]   --> src/fields/sparse/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[macro_use]` can be applied to crates, extern crates, and modules
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` attribute cannot be used on use statements
[INFO] [stdout]   --> src/fields/dense/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[macro_use]` can be applied to crates, extern crates, and modules
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` attribute cannot be used on use statements
[INFO] [stdout]   --> src/fields/dense/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[macro_use]` can be applied to crates, extern crates, and modules
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` attribute cannot be used on use statements
[INFO] [stdout]   --> src/fields/sparse/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[macro_use]` can be applied to crates, extern crates, and modules
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` attribute cannot be used on use statements
[INFO] [stdout]   --> src/fields/dense/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[macro_use]` can be applied to crates, extern crates, and modules
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` attribute cannot be used on use statements
[INFO] [stdout]   --> src/fields/dense/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = help: `#[macro_use]` can be applied to crates, extern crates, and modules
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Div`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sub`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Zero`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::MultiplicativeGroupElement`
[INFO] [stdout]  --> src/fields/dense/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::fields::MultiplicativeGroupElement;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::fields::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Neg`
[INFO] [stdout]  --> src/polynomial/subtract.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{AddAssign, Neg, Sub, SubAssign};
[INFO] [stdout]   |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Mul`
[INFO] [stdout]   --> src/fields/sparse/basis.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ops::Mul;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::MultiplicativeGroupElement`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::fields::MultiplicativeGroupElement;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fields/sparse/basis.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let mut n_div_powers = Exponent::factorise(n);
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fields/dense/basis.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut n_div_powers = Exponent::factorise(&n);
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]    --> src/fields/rational.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn is_zero(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 158 |         self.is_zero()
[INFO] [stdout]     |         -------------- recursive call site
[INFO] [stdout]     |
[INFO] [stdout]     = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]     = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/parser.rs:30:45
[INFO] [stdout]    |
[INFO] [stdout] 30 |         FromStr::from_str((sign.map_or("", |s| "-").to_owned() + x).as_str())
[INFO] [stdout]    |                                             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]  --> src/coprime_counter/coprime_counter.rs:1:6
[INFO] [stdout]   |
[INFO] [stdout] 1 | type Z = num::bigint::BigInt;
[INFO] [stdout]   |      ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CoprimeCounter` is never used
[INFO] [stdout]  --> src/coprime_counter/coprime_counter.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub trait CoprimeCounter {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `R` is never used
[INFO] [stdout]  --> src/coprime_counter/hybrid_coprime_counter.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type R = f64;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Q` is never used
[INFO] [stdout]  --> src/coprime_counter/hybrid_coprime_counter.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type Q = num::rational::BigRational;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]   --> src/coprime_counter/hybrid_coprime_counter.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Z = num::bigint::BigInt;
[INFO] [stdout]    |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HybridCoprimeCounter` is never constructed
[INFO] [stdout]   --> src/coprime_counter/hybrid_coprime_counter.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct HybridCoprimeCounter<PF: PrimeFactorize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/coprime_counter/hybrid_coprime_counter.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<PF: PrimeFactorize> HybridCoprimeCounter<PF> {
[INFO] [stdout]    | ------------------------------------------------- associated function in this implementation
[INFO] [stdout] 17 |     pub fn new(prime_factorizer: PF) -> HybridCoprimeCounter<PF> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/coprime_counter/hybrid_coprime_counter.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl HybridCoprimeCounter<RecursivePrimeFactorize<LibraryDivisors>> {
[INFO] [stdout]    | ------------------------------------------------------------------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn default() -> HybridCoprimeCounter<RecursivePrimeFactorize<LibraryDivisors>> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]  --> src/divisors/divisors.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Z = num::bigint::BigInt;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Divisors` is never used
[INFO] [stdout]  --> src/divisors/divisors.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Divisors {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]  --> src/divisors/euclid.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Z = num::bigint::BigInt;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Euclid` is never constructed
[INFO] [stdout]  --> src/divisors/euclid.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Euclid {}
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `extended_euclidean_augmented_matrix_result_rows`, `gcd`, `multiplicative_inverse_mod_n`, and `multiplicative_inverse_mod_polynomial` are never used
[INFO] [stdout]    --> src/divisors/euclid.rs:12:12
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl Euclid {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  12 |     pub fn new() -> Euclid {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  16 |     fn extended_euclidean_augmented_matrix_result_rows(&self, m: &Z, n: &Z) -> (Vec<Z>, Vec<Z>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn gcd(&self, m: &Z, n: &Z) -> Z {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn multiplicative_inverse_mod_n(&self, i: &Z, n: &Z) -> Option<Z> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn multiplicative_inverse_mod_polynomial(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]  --> src/divisors/library_divisors.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type Z = num::bigint::BigInt;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LibraryDivisors` is never constructed
[INFO] [stdout]   --> src/divisors/library_divisors.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct LibraryDivisors {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/divisors/library_divisors.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl LibraryDivisors {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> LibraryDivisors {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_mut` is never used
[INFO] [stdout]  --> src/polynomial/add.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl Polynomial {
[INFO] [stdout]   | --------------- method in this implementation
[INFO] [stdout] 8 |     fn add_mut(&mut self, rhs: Self) {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `from_small_fractions`, and `truncate_coefficients` are never used
[INFO] [stdout]   --> src/polynomial/construct.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl Polynomial {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout]  6 |     pub fn new(coefficients: Vec<Q>) -> Polynomial {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn from_small_fractions(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn truncate_coefficients<T: Zero>(coefficients: &mut Vec<T>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_string` is never used
[INFO] [stdout]  --> src/polynomial/display.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl Polynomial {
[INFO] [stdout]   | --------------- method in this implementation
[INFO] [stdout] 8 |     pub fn to_string(&self) -> String {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `div` is never used
[INFO] [stdout]  --> src/polynomial/divide.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl Polynomial {
[INFO] [stdout]   | --------------- method in this implementation
[INFO] [stdout] 8 |     pub fn div(&self, divisor: &Self) -> (Polynomial, Polynomial) {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `is_irreducible_over_q`, `is_irreducible_by_eisenstein_criterion`, `convert_to_integer_coefficients`, and `try_integer_coefficients` are never used
[INFO] [stdout]    --> src/polynomial/is_irreducible.rs:9:12
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl Polynomial {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]   9 |     pub fn is_irreducible_over_q(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn is_irreducible_by_eisenstein_criterion(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn convert_to_integer_coefficients(&self) -> Polynomial {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     fn try_integer_coefficients(&self) -> Vec<Z> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `coefficient_mul_naive`, `mul_mut_naive`, `mul_mut_convolutions`, `mul_mut_fft`, and `mul` are never used
[INFO] [stdout]    --> src/polynomial/multiply.rs:8:8
[INFO] [stdout]     |
[INFO] [stdout]   7 | impl Polynomial {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]   8 |     fn coefficient_mul_naive(lhs: &Vec<Q>, rhs: &Vec<Q>) -> Vec<Q> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub fn mul_mut_naive(&mut self, rhs: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn mul_mut_convolutions(&mut self, rhs: Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn mul_mut_fft(&mut self, _rhs: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn mul(&self, rhs: &Self) -> Polynomial {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `neg` is never used
[INFO] [stdout]  --> src/polynomial/negate.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | impl Polynomial {
[INFO] [stdout]   | --------------- method in this implementation
[INFO] [stdout] 5 |     pub fn neg(&self) -> Polynomial {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]  --> src/polynomial/polynomial.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Z = num::bigint::BigInt;
[INFO] [stdout]   |          ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Q` is never used
[INFO] [stdout]  --> src/polynomial/polynomial.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type Q = num::rational::BigRational;
[INFO] [stdout]   |          ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Polynomial` is never constructed
[INFO] [stdout]  --> src/polynomial/polynomial.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Polynomial {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `degree`, `leading_term_coefficient`, `constant_term_coefficient`, and `is_monic` are never used
[INFO] [stdout]   --> src/polynomial/polynomial.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Polynomial {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 12 |     pub fn degree(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn leading_term_coefficient(&self) -> &Q {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn constant_term_coefficient(&self) -> &Q {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn is_monic(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `substitute` is never used
[INFO] [stdout]  --> src/polynomial/substitute.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl Polynomial {
[INFO] [stdout]   | --------------- method in this implementation
[INFO] [stdout] 7 |     pub fn substitute(&self, t: Q) -> Q {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sub_mut` and `sub` are never used
[INFO] [stdout]   --> src/polynomial/subtract.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl Polynomial {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout]  6 |     pub fn sub_mut(&mut self, rhs: &Self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn sub(&self, rhs: &Self) -> Polynomial {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `R` is never used
[INFO] [stdout]   --> src/prime_counter/legendre.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type R = f64;
[INFO] [stdout]    |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ZPlus` is never used
[INFO] [stdout]   --> src/prime_counter/legendre.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type ZPlus = u64;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]   --> src/prime_counter/legendre.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Z = i64;
[INFO] [stdout]    |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Legendre` is never constructed
[INFO] [stdout]   --> src/prime_counter/legendre.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Legendre<'a> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `pi_prime`, `legendre_sum`, and `legendre_sum_phi` are never used
[INFO] [stdout]    --> src/prime_counter/legendre.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl<'a> Legendre<'a> {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  25 |     pub fn new(primes: &Primes) -> Legendre {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     fn pi_prime(&self, x: R, relevant_primes: &Primes) -> ZPlus {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn legendre_sum(&self, x: R, relevant_primes: &Vec<ZPlus>) -> Z {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn legendre_sum_phi(&self, x: R, a: ZPlus) -> Z {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `R` is never used
[INFO] [stdout]  --> src/prime_counter/lehmer.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type R = f64;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ZPlus` is never used
[INFO] [stdout]  --> src/prime_counter/lehmer.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type ZPlus = u64;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]  --> src/prime_counter/lehmer.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Z = i64;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lehmer` is never constructed
[INFO] [stdout]  --> src/prime_counter/lehmer.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Lehmer<'a> {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `pi_prime` are never used
[INFO] [stdout]   --> src/prime_counter/lehmer.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a> Lehmer<'a> {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(primes: &Primes) -> Lehmer {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn pi_prime(&self, x: R, relevant_primes: &Primes) -> ZPlus {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `R` is never used
[INFO] [stdout]  --> src/prime_counter/meissel.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type R = f64;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ZPlus` is never used
[INFO] [stdout]  --> src/prime_counter/meissel.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type ZPlus = u64;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]  --> src/prime_counter/meissel.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Z = i64;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Meissel` is never constructed
[INFO] [stdout]  --> src/prime_counter/meissel.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Meissel<'a> {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `pi_prime` are never used
[INFO] [stdout]   --> src/prime_counter/meissel.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a> Meissel<'a> {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(primes: &Primes) -> Meissel {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn pi_prime(&self, x: R, relevant_primes: &Primes) -> ZPlus {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `R` is never used
[INFO] [stdout]  --> src/prime_counter/prime_counter.rs:1:6
[INFO] [stdout]   |
[INFO] [stdout] 1 | type R = f64;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ZPlus` is never used
[INFO] [stdout]  --> src/prime_counter/prime_counter.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | type ZPlus = u64;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PrimeCounter` is never used
[INFO] [stdout]  --> src/prime_counter/prime_counter.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait PrimeCounter {
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]  --> src/prime_factors/prime_factorize.rs:1:6
[INFO] [stdout]   |
[INFO] [stdout] 1 | type Z = num::bigint::BigInt;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PrimeFactorize` is never used
[INFO] [stdout]  --> src/prime_factors/prime_factorize.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait PrimeFactorize {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]   --> src/prime_factors/recursive_prime_factorize.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Z = num::bigint::BigInt;
[INFO] [stdout]    |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecursivePrimeFactorize` is never constructed
[INFO] [stdout]   --> src/prime_factors/recursive_prime_factorize.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct RecursivePrimeFactorize<D: Divisors> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/prime_factors/recursive_prime_factorize.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<D: Divisors> RecursivePrimeFactorize<D> {
[INFO] [stdout]    | -------------------------------------------- associated function in this implementation
[INFO] [stdout] 18 |     pub fn new(divisors_strategy: D) -> RecursivePrimeFactorize<D> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/prime_factors/recursive_prime_factorize.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl RecursivePrimeFactorize<LibraryDivisors> {
[INFO] [stdout]    | --------------------------------------------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn default() -> RecursivePrimeFactorize<LibraryDivisors> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ZPlus` is never used
[INFO] [stdout]  --> src/primes/prime_table.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type ZPlus = u64;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrimeTableReader` is never constructed
[INFO] [stdout]  --> src/primes/prime_table.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct PrimeTableReader<'a> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `first_million_from_file`, `first_million_primes`, `read_primes_from_table`, and `read_primes_from_csv` are never used
[INFO] [stdout]   --> src/primes/prime_table.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl<'a> PrimeTableReader<'a> {
[INFO] [stdout]    | ----------------------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn new(directory_path: &Path) -> PrimeTableReader {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn first_million_from_file() -> Option<PrimeTableReader<'a>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn first_million_primes(&self) -> Vec<ZPlus> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     fn read_primes_from_table(primes_txt_content: String) -> Vec<ZPlus> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     fn read_primes_from_csv(primes_csv_content: String) -> Vec<ZPlus> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `R` is never used
[INFO] [stdout]  --> src/primes/primes.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type R = f64;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ZPlus` is never used
[INFO] [stdout]  --> src/primes/primes.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type ZPlus = u64;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]  --> src/primes/primes.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type Z = i64;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Primes` is never constructed
[INFO] [stdout]   --> src/primes/primes.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Primes {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/primes/primes.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl Primes {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  21 |     pub fn new(primes: Vec<ZPlus>) -> Primes {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  26 |     fn new_subset(primes: Vec<ZPlus>) -> Primes {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     fn assert_sorted_ascending<T: PartialOrd + Display>(vec: &Vec<T>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn to_vec(&self) -> &Vec<ZPlus> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn first_n(&self, n: ZPlus) -> Option<Primes> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     fn pi_prime(&self, x: ZPlus) -> Option<ZPlus> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn range(&self, lower_bound: ZPlus, upper_bound: ZPlus) -> Option<Primes> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn pi_range(&self, lower_bound: ZPlus, upper_bound: ZPlus) -> Option<ZPlus> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn nth(&self, x: usize) -> Option<ZPlus> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_same_coeff` is never used
[INFO] [stdout]   --> src/fields/sparse/mod.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn get_same_coeff<E: Exponent, Q: Rational>(z: &Number<E, Q>) -> Option<Q> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Number_i64` is never used
[INFO] [stdout]    --> src/fields/sparse/mod.rs:276:6
[INFO] [stdout]     |
[INFO] [stdout] 276 | type Number_i64 = Number<i64, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Number_Z` is never used
[INFO] [stdout]    --> src/fields/sparse/mod.rs:277:6
[INFO] [stdout]     |
[INFO] [stdout] 277 | type Number_Z = Number<Z, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_same_coeff` is never used
[INFO] [stdout]   --> src/fields/dense/mod.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn get_same_coeff(z: &Number) -> Option<Q> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `factors`, `zero`, and `one` are never read
[INFO] [stdout]   --> src/fields/structure/mod.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CyclotomicField {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     factors: Vec<(i64, u32)>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 32 |
[INFO] [stdout] 33 |     zero: Vec<Q>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 34 |
[INFO] [stdout] 35 |     one: Vec<Q>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_rat_vec` is never used
[INFO] [stdout]   --> src/fields/structure/mod.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn print_rat_vec(v: &Vec<Q>) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SmallOrder` is never constructed
[INFO] [stdout]    --> src/fields/structure/mod.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | struct SmallOrder(i64);
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_cyc` is never used
[INFO] [stdout]    --> src/fields/structure/mod.rs:182:4
[INFO] [stdout]     |
[INFO] [stdout] 182 | fn random_cyc(field: &CyclotomicField) -> Vec<Q> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `assert_add_compatible` is never used
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | / impl<T, E> Matrix<T, E>
[INFO] [stdout] 14 | | where
[INFO] [stdout] 15 | |     T: CyclotomicFieldElement<E>,
[INFO] [stdout] 16 | |     E: From<i64> + Exponent,
[INFO] [stdout]    | |____________________________- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |       fn assert_add_compatible(mA: &Self, mB: &Self) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vector` is never constructed
[INFO] [stdout]    --> src/fields/linear_algebra/mod.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | struct Vector<T, E> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dot_product` is never used
[INFO] [stdout]    --> src/fields/linear_algebra/mod.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | / impl<T, E> Vector<T, E>
[INFO] [stdout] 112 | | where
[INFO] [stdout] 113 | |     T: CyclotomicFieldElement<E>,
[INFO] [stdout] 114 | |     E: From<i64> + Exponent,
[INFO] [stdout]     | |____________________________- method in this implementation
[INFO] [stdout] 115 |   {
[INFO] [stdout] 116 |       fn dot_product(&self, other: &mut Self) -> T {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `List` is never constructed
[INFO] [stdout]   --> src/parser.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Expr {
[INFO] [stdout]    |      ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 24 |     List(Vec<Expr>),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/prime_counter/legendre.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn new(primes: &Primes) -> Legendre {
[INFO] [stdout]    |                        ^^^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn new(primes: &Primes) -> Legendre<'_> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/prime_counter/lehmer.rs:21:24
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(primes: &Primes) -> Lehmer {
[INFO] [stdout]    |                        ^^^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(primes: &Primes) -> Lehmer<'_> {
[INFO] [stdout]    |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/prime_counter/meissel.rs:21:24
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(primes: &Primes) -> Meissel {
[INFO] [stdout]    |                        ^^^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(primes: &Primes) -> Meissel<'_> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primes/prime_table.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(directory_path: &Path) -> PrimeTableReader {
[INFO] [stdout]    |                                ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(directory_path: &Path) -> PrimeTableReader<'_> {
[INFO] [stdout]    |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:18:24
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn zero_matrix(N: usize, M: usize) -> Self {
[INFO] [stdout]    |                        ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:18:34
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn zero_matrix(N: usize, M: usize) -> Self {
[INFO] [stdout]    |                                  ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn identity_matrix(N: usize) -> Self {
[INFO] [stdout]    |                            ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mA` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn assert_mul_compatible(mA: &Self, mB: &Self) {
[INFO] [stdout]    |                              ^^ help: convert the identifier to snake case: `m_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mB` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:34:41
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn assert_mul_compatible(mA: &Self, mB: &Self) {
[INFO] [stdout]    |                                         ^^ help: convert the identifier to snake case: `m_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let A = &mA.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let B = &mB.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mA` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn mul(mA: &mut Self, mB: &mut Self) -> Self {
[INFO] [stdout]    |                ^^ help: convert the identifier to snake case: `m_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mB` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:48:31
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn mul(mA: &mut Self, mB: &mut Self) -> Self {
[INFO] [stdout]    |                               ^^ help: convert the identifier to snake case: `m_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let A = &mut mA.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let B = &mut mB.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let N = A.len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let M = B.len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let L = B[0].len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mA` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:72:30
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn assert_add_compatible(mA: &Self, mB: &Self) {
[INFO] [stdout]    |                              ^^ help: convert the identifier to snake case: `m_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mB` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:72:41
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn assert_add_compatible(mA: &Self, mB: &Self) {
[INFO] [stdout]    |                                         ^^ help: convert the identifier to snake case: `m_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mA` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:81:16
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn add(mA: &mut Self, mB: &mut Self) -> Self {
[INFO] [stdout]    |                ^^ help: convert the identifier to snake case: `m_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mB` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:81:31
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn add(mA: &mut Self, mB: &mut Self) -> Self {
[INFO] [stdout]    |                               ^^ help: convert the identifier to snake case: `m_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let A = &mut mA.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let B = &mut mB.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let N = A.len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let M = A[0].len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/fields/rational.rs:179:31
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let x: u64 = unsafe { transmute(self.0) };
[INFO] [stdout]     |                               ---------^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: replace this with: `f64::to_bits`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Div`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sub`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Zero`
[INFO] [stdout]  --> src/fields/structure/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Zero`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Neg`
[INFO] [stdout]  --> src/polynomial/subtract.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{AddAssign, Neg, Sub, SubAssign};
[INFO] [stdout]   |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Mul`
[INFO] [stdout]   --> src/fields/sparse/basis.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ops::Mul;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::seq::IteratorRandom`
[INFO] [stdout]   --> src/bin/cyclobench.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use rand::seq::IteratorRandom;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]   --> src/bin/cyclobench.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::cmp::min;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]   --> src/bin/cyclobench.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::convert::TryInto;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Command` and `Stdio`
[INFO] [stdout]   --> src/bin/cyclobench.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 32 | use std::process::{Command, Stdio};
[INFO] [stdout]    |                    ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cyclotomic::fields::dense::basis::try_reduce`
[INFO] [stdout]   --> src/bin/cyclobench.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use cyclotomic::fields::dense::basis::try_reduce;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::Float`
[INFO] [stdout]   --> src/bin/cyclobench.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | use num_traits::Float;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `assert_eq_return`
[INFO] [stdout]    --> src/bin/cyclobench.rs:360:14
[INFO] [stdout]     |
[INFO] [stdout] 360 | macro_rules! assert_eq_return {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fields/sparse/basis.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let mut n_div_powers = Exponent::factorise(n);
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fields/dense/basis.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut n_div_powers = Exponent::factorise(&n);
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::seq::IteratorRandom`
[INFO] [stdout]   --> src/bin/cyclobench.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use rand::seq::IteratorRandom;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]   --> src/bin/cyclobench.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::cmp::min;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]   --> src/bin/cyclobench.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::convert::TryInto;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Command` and `Stdio`
[INFO] [stdout]   --> src/bin/cyclobench.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 32 | use std::process::{Command, Stdio};
[INFO] [stdout]    |                    ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cyclotomic::fields::dense::basis::try_reduce`
[INFO] [stdout]   --> src/bin/cyclobench.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use cyclotomic::fields::dense::basis::try_reduce;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::Float`
[INFO] [stdout]   --> src/bin/cyclobench.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | use num_traits::Float;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `assert_eq_return`
[INFO] [stdout]    --> src/bin/cyclobench.rs:360:14
[INFO] [stdout]     |
[INFO] [stdout] 360 | macro_rules! assert_eq_return {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]    --> src/fields/rational.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn is_zero(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 158 |         self.is_zero()
[INFO] [stdout]     |         -------------- recursive call site
[INFO] [stdout]     |
[INFO] [stdout]     = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]     = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/parser.rs:30:45
[INFO] [stdout]    |
[INFO] [stdout] 30 |         FromStr::from_str((sign.map_or("", |s| "-").to_owned() + x).as_str())
[INFO] [stdout]    |                                             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/bin/cyclobench.rs:532:9
[INFO] [stdout]     |
[INFO] [stdout] 531 |         panic!("bad implementation! TODO: do the others?");
[INFO] [stdout]     |         -------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 532 |         0
[INFO] [stdout]     |         ^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Zero`
[INFO] [stdout]   --> src/bin/cyclobench.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use num::Zero;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cyclotomic::fields::MultiplicativeGroupElement`
[INFO] [stdout]   --> src/bin/cyclobench.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use cyclotomic::fields::MultiplicativeGroupElement;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cyclotomic::fields::AdditiveGroupElement`
[INFO] [stdout]   --> src/bin/cyclobench.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use cyclotomic::fields::AdditiveGroupElement;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/bin/cyclobench.rs:532:9
[INFO] [stdout]     |
[INFO] [stdout] 531 |         panic!("bad implementation! TODO: do the others?");
[INFO] [stdout]     |         -------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 532 |         0
[INFO] [stdout]     |         ^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Q` is never used
[INFO] [stdout]  --> src/coprime_counter/hybrid_coprime_counter.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type Q = num::rational::BigRational;
[INFO] [stdout]   |      ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mul_mut_naive` and `mul_mut_fft` are never used
[INFO] [stdout]    --> src/polynomial/multiply.rs:18:12
[INFO] [stdout]     |
[INFO] [stdout]   7 | impl Polynomial {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub fn mul_mut_naive(&mut self, rhs: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn mul_mut_fft(&mut self, _rhs: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `R` is never used
[INFO] [stdout]  --> src/primes/primes.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type R = f64;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Z` is never used
[INFO] [stdout]  --> src/primes/primes.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type Z = i64;
[INFO] [stdout]   |      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_same_coeff` is never used
[INFO] [stdout]   --> src/fields/sparse/mod.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn get_same_coeff<E: Exponent, Q: Rational>(z: &Number<E, Q>) -> Option<Q> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_same_coeff` is never used
[INFO] [stdout]   --> src/fields/dense/mod.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn get_same_coeff(z: &Number) -> Option<Q> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `factors` is never read
[INFO] [stdout]   --> src/fields/structure/mod.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CyclotomicField {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     factors: Vec<(i64, u32)>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_rat_vec` is never used
[INFO] [stdout]   --> src/fields/structure/mod.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn print_rat_vec(v: &Vec<Q>) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `assert_add_compatible` is never used
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | / impl<T, E> Matrix<T, E>
[INFO] [stdout] 14 | | where
[INFO] [stdout] 15 | |     T: CyclotomicFieldElement<E>,
[INFO] [stdout] 16 | |     E: From<i64> + Exponent,
[INFO] [stdout]    | |____________________________- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |       fn assert_add_compatible(mA: &Self, mB: &Self) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vector` is never constructed
[INFO] [stdout]    --> src/fields/linear_algebra/mod.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | struct Vector<T, E> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dot_product` is never used
[INFO] [stdout]    --> src/fields/linear_algebra/mod.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | / impl<T, E> Vector<T, E>
[INFO] [stdout] 112 | | where
[INFO] [stdout] 113 | |     T: CyclotomicFieldElement<E>,
[INFO] [stdout] 114 | |     E: From<i64> + Exponent,
[INFO] [stdout]     | |____________________________- method in this implementation
[INFO] [stdout] 115 |   {
[INFO] [stdout] 116 |       fn dot_product(&self, other: &mut Self) -> T {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `List` is never constructed
[INFO] [stdout]   --> src/parser.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Expr {
[INFO] [stdout]    |      ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 24 |     List(Vec<Expr>),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/prime_counter/legendre.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn new(primes: &Primes) -> Legendre {
[INFO] [stdout]    |                        ^^^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn new(primes: &Primes) -> Legendre<'_> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/prime_counter/lehmer.rs:21:24
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(primes: &Primes) -> Lehmer {
[INFO] [stdout]    |                        ^^^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(primes: &Primes) -> Lehmer<'_> {
[INFO] [stdout]    |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Zero`
[INFO] [stdout]   --> src/bin/cyclobench.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use num::Zero;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cyclotomic::fields::MultiplicativeGroupElement`
[INFO] [stdout]   --> src/bin/cyclobench.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use cyclotomic::fields::MultiplicativeGroupElement;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/prime_counter/meissel.rs:21:24
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(primes: &Primes) -> Meissel {
[INFO] [stdout]    |                        ^^^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(primes: &Primes) -> Meissel<'_> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cyclotomic::fields::AdditiveGroupElement`
[INFO] [stdout]   --> src/bin/cyclobench.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use cyclotomic::fields::AdditiveGroupElement;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primes/prime_table.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(directory_path: &Path) -> PrimeTableReader {
[INFO] [stdout]    |                                ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(directory_path: &Path) -> PrimeTableReader<'_> {
[INFO] [stdout]    |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Z_tests` should have a snake case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | mod Z_tests {
[INFO] [stdout]     |     ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `z_tests`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:18:24
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn zero_matrix(N: usize, M: usize) -> Self {
[INFO] [stdout]    |                        ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:18:34
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn zero_matrix(N: usize, M: usize) -> Self {
[INFO] [stdout]    |                                  ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn identity_matrix(N: usize) -> Self {
[INFO] [stdout]    |                            ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mA` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:34:30
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn assert_mul_compatible(mA: &Self, mB: &Self) {
[INFO] [stdout]    |                              ^^ help: convert the identifier to snake case: `m_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mB` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:34:41
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn assert_mul_compatible(mA: &Self, mB: &Self) {
[INFO] [stdout]    |                                         ^^ help: convert the identifier to snake case: `m_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let A = &mA.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let B = &mB.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mA` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn mul(mA: &mut Self, mB: &mut Self) -> Self {
[INFO] [stdout]    |                ^^ help: convert the identifier to snake case: `m_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mB` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:48:31
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn mul(mA: &mut Self, mB: &mut Self) -> Self {
[INFO] [stdout]    |                               ^^ help: convert the identifier to snake case: `m_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let A = &mut mA.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let B = &mut mB.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let N = A.len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let M = B.len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let L = B[0].len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mA` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:72:30
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn assert_add_compatible(mA: &Self, mB: &Self) {
[INFO] [stdout]    |                              ^^ help: convert the identifier to snake case: `m_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mB` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:72:41
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn assert_add_compatible(mA: &Self, mB: &Self) {
[INFO] [stdout]    |                                         ^^ help: convert the identifier to snake case: `m_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mA` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:81:16
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn add(mA: &mut Self, mB: &mut Self) -> Self {
[INFO] [stdout]    |                ^^ help: convert the identifier to snake case: `m_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mB` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:81:31
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn add(mA: &mut Self, mB: &mut Self) -> Self {
[INFO] [stdout]    |                               ^^ help: convert the identifier to snake case: `m_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let A = &mut mA.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let B = &mut mB.value;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let N = A.len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let M = A[0].len();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/fields/rational.rs:179:31
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let x: u64 = unsafe { transmute(self.0) };
[INFO] [stdout]     |                               ---------^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: replace this with: `f64::to_bits`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opts`
[INFO] [stdout]    --> src/bin/cyclobench.rs:442:32
[INFO] [stdout]     |
[INFO] [stdout] 442 | fn stdin_scalar_bench<T, E, Q>(opts: &StdinOpts, generic_nums: &Vec<Vec<GenericCyclotomic>>) -> u128
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_opts`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/cyclobench.rs:561:10
[INFO] [stdout]     |
[INFO] [stdout] 561 |     let (mut sparse_irr_chars, mut sparse_random_char) =
[INFO] [stdout]     |          ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/cyclobench.rs:561:32
[INFO] [stdout]     |
[INFO] [stdout] 561 |     let (mut sparse_irr_chars, mut sparse_random_char) =
[INFO] [stdout]     |                                ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opts`
[INFO] [stdout]    --> src/bin/cyclobench.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 |     opts: &CharacterOpts,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_opts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/cyclobench.rs:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |     let mut nums = generic_to_concrete::<T, E, Q>(generic_nums);
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/cyclobench.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 | /         write!(
[INFO] [stdout] 144 | |             &mut file,
[INFO] [stdout] 145 | |             "nop({} * {} + {} * {} + {} * {});\n",
[INFO] [stdout] 146 | |             sparse::print_gap(x),
[INFO] [stdout] ...   |
[INFO] [stdout] 151 | |             sparse::print_gap(c),
[INFO] [stdout] 152 | |         );
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let _ = write!(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/bin/cyclobench.rs:468:9
[INFO] [stdout]     |
[INFO] [stdout] 468 |     let N = matrices[0].value.len();
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/cyclobench.rs:492:5
[INFO] [stdout]     |
[INFO] [stdout] 492 |     io::stdin().read_line(&mut sizes_str);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 492 |     let _ = io::stdin().read_line(&mut sizes_str);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/cyclobench.rs:499:5
[INFO] [stdout]     |
[INFO] [stdout] 499 |     io::stdin().read_line(&mut num_chars_str);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 499 |     let _ = io::stdin().read_line(&mut num_chars_str);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/cyclobench.rs:508:9
[INFO] [stdout]     |
[INFO] [stdout] 508 |         io::stdin().read_line(&mut gap_char);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 508 |         let _ = io::stdin().read_line(&mut gap_char);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/cyclobench.rs:515:5
[INFO] [stdout]     |
[INFO] [stdout] 515 |     io::stdin().read_to_string(&mut random_char_str);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 515 |     let _ = io::stdin().read_to_string(&mut random_char_str);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opts`
[INFO] [stdout]    --> src/bin/cyclobench.rs:442:32
[INFO] [stdout]     |
[INFO] [stdout] 442 | fn stdin_scalar_bench<T, E, Q>(opts: &StdinOpts, generic_nums: &Vec<Vec<GenericCyclotomic>>) -> u128
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_opts`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/cyclobench.rs:561:10
[INFO] [stdout]     |
[INFO] [stdout] 561 |     let (mut sparse_irr_chars, mut sparse_random_char) =
[INFO] [stdout]     |          ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/cyclobench.rs:561:32
[INFO] [stdout]     |
[INFO] [stdout] 561 |     let (mut sparse_irr_chars, mut sparse_random_char) =
[INFO] [stdout]     |                                ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opts`
[INFO] [stdout]    --> src/bin/cyclobench.rs:556:5
[INFO] [stdout]     |
[INFO] [stdout] 556 |     opts: &CharacterOpts,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_opts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/cyclobench.rs:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |     let mut nums = generic_to_concrete::<T, E, Q>(generic_nums);
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/cyclobench.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 | /         write!(
[INFO] [stdout] 144 | |             &mut file,
[INFO] [stdout] 145 | |             "nop({} * {} + {} * {} + {} * {});\n",
[INFO] [stdout] 146 | |             sparse::print_gap(x),
[INFO] [stdout] ...   |
[INFO] [stdout] 151 | |             sparse::print_gap(c),
[INFO] [stdout] 152 | |         );
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let _ = write!(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/bin/cyclobench.rs:468:9
[INFO] [stdout]     |
[INFO] [stdout] 468 |     let N = matrices[0].value.len();
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/cyclobench.rs:492:5
[INFO] [stdout]     |
[INFO] [stdout] 492 |     io::stdin().read_line(&mut sizes_str);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 492 |     let _ = io::stdin().read_line(&mut sizes_str);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/cyclobench.rs:499:5
[INFO] [stdout]     |
[INFO] [stdout] 499 |     io::stdin().read_line(&mut num_chars_str);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 499 |     let _ = io::stdin().read_line(&mut num_chars_str);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/cyclobench.rs:508:9
[INFO] [stdout]     |
[INFO] [stdout] 508 |         io::stdin().read_line(&mut gap_char);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 508 |         let _ = io::stdin().read_line(&mut gap_char);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/cyclobench.rs:515:5
[INFO] [stdout]     |
[INFO] [stdout] 515 |     io::stdin().read_to_string(&mut random_char_str);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 515 |     let _ = io::stdin().read_to_string(&mut random_char_str);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 38s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.2.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 6`
[INFO] running `Command { std: "docker" "inspect" "8e6196f30245c7bf25a36d24d598784d1f91a004b4552abae7f774568268e943", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8e6196f30245c7bf25a36d24d598784d1f91a004b4552abae7f774568268e943", kill_on_drop: false }`
[INFO] [stdout] 8e6196f30245c7bf25a36d24d598784d1f91a004b4552abae7f774568268e943
