[INFO] cloning repository https://github.com/Colton1skees/fbgb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Colton1skees/fbgb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FColton1skees%2Ffbgb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FColton1skees%2Ffbgb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 62f8ba2b458b6d518aa33456d2fc1762c449e4d3
[INFO] checking Colton1skees/fbgb against try#012cd62c9add58ab3910e44c137d87db3ab70f61 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FColton1skees%2Ffbgb" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Colton1skees/fbgb
[INFO] finished tweaking git repo https://github.com/Colton1skees/fbgb
[INFO] tweaked toml for git repo https://github.com/Colton1skees/fbgb written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Colton1skees/fbgb on toolchain 012cd62c9add58ab3910e44c137d87db3ab70f61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Colton1skees/fbgb 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" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: profile.dev.debuginfo-level
[INFO] [stderr] warning: unused manifest key: profile.release.debuginfo-level
[INFO] [stderr]     Updating git repository `https://github.com/Colton1skees/m4ri-rust.git`
[INFO] [stderr]     Updating git submodule `https://bitbucket.org/thomwiggers/m4ri.git`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded vob v3.0.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a12729673ff9d6ff3c6e8dd9ffcc51a122f75264e6680d5191e8a9794f3e8f4a
[INFO] running `Command { std: "docker" "start" "-a" "a12729673ff9d6ff3c6e8dd9ffcc51a122f75264e6680d5191e8a9794f3e8f4a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a12729673ff9d6ff3c6e8dd9ffcc51a122f75264e6680d5191e8a9794f3e8f4a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a12729673ff9d6ff3c6e8dd9ffcc51a122f75264e6680d5191e8a9794f3e8f4a", kill_on_drop: false }`
[INFO] [stdout] a12729673ff9d6ff3c6e8dd9ffcc51a122f75264e6680d5191e8a9794f3e8f4a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5a72f3cf586595db8768bd702a40f3d64071fa439198fd5a5cdde5619ad3ad16
[INFO] running `Command { std: "docker" "start" "-a" "5a72f3cf586595db8768bd702a40f3d64071fa439198fd5a5cdde5619ad3ad16", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: profile.dev.debuginfo-level
[INFO] [stderr] warning: unused manifest key: profile.release.debuginfo-level
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking fbgb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp;
[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::Ordering`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::c_int`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::ffi::c_int;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time::Instant`
[INFO] [stdout]  --> src/boolpoly.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt, time::Instant};
[INFO] [stdout]   |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::c_int`
[INFO] [stdout]   --> src/buchberger.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ffi::c_int;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/npn.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/npn.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/npn.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::RngCore`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use rand::RngCore;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hamiltonian_paths::PATH_7`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::hamiltonian_paths::PATH_7;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hamiltonian_paths::SJT_PATHS`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::hamiltonian_paths::SJT_PATHS;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/main.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |         if (i % 10000000 == 0) {
[INFO] [stdout]    |            ^                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 51 -         if (i % 10000000 == 0) {
[INFO] [stdout] 51 +         if i % 10000000 == 0 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]   --> src/main.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     while true {
[INFO] [stdout]    |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 |         if (ii % 1000 == 0) {
[INFO] [stdout]     |            ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 153 -         if (ii % 1000 == 0) {
[INFO] [stdout] 153 +         if ii % 1000 == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp;
[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::Ordering`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::c_int`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::ffi::c_int;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time::Instant`
[INFO] [stdout]  --> src/boolpoly.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt, time::Instant};
[INFO] [stdout]   |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::c_int`
[INFO] [stdout]   --> src/buchberger.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ffi::c_int;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/npn.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/npn.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/npn.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::RngCore`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use rand::RngCore;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hamiltonian_paths::PATH_7`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::hamiltonian_paths::PATH_7;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::hamiltonian_paths::SJT_PATHS`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::hamiltonian_paths::SJT_PATHS;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/main.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |         if (i % 10000000 == 0) {
[INFO] [stdout]    |            ^                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 51 -         if (i % 10000000 == 0) {
[INFO] [stdout] 51 +         if i % 10000000 == 0 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]   --> src/main.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     while true {
[INFO] [stdout]    |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 |         if (ii % 1000 == 0) {
[INFO] [stdout]     |            ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 153 -         if (ii % 1000 == 0) {
[INFO] [stdout] 153 +         if ii % 1000 == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/boolpoly.rs:441:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |           return self.mul_monomial(rhs);
[INFO] [stdout]     |           ----------------------------- any code following this expression is unreachable
[INFO] [stdout] 441 | /         if self.is_zero() || rhs.is_zero() {
[INFO] [stdout] 442 | |             return BoolPoly::<N>::new();
[INFO] [stdout] 443 | |         }
[INFO] [stdout]     | |_________^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/boolpoly.rs:441:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |           return self.mul_monomial(rhs);
[INFO] [stdout]     |           ----------------------------- any code following this expression is unreachable
[INFO] [stdout] 441 | /         if self.is_zero() || rhs.is_zero() {
[INFO] [stdout] 442 | |             return BoolPoly::<N>::new();
[INFO] [stdout] 443 | |         }
[INFO] [stdout]     | |_________^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/npn.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 258 |           return self.pack().cmp(&other.pack());
[INFO] [stdout]     |           ------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 259 | /         self.dead
[INFO] [stdout] 260 | |             .cmp(&other.dead)
[INFO] [stdout] 261 | |             .then(self.weight.cmp(&other.weight))
[INFO] [stdout] 262 | |             .then(self.total_degree.cmp(&other.total_degree))
[INFO] [stdout]     | |_____________________________________________________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/npn.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 258 |           return self.pack().cmp(&other.pack());
[INFO] [stdout]     |           ------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 259 | /         self.dead
[INFO] [stdout] 260 | |             .cmp(&other.dead)
[INFO] [stdout] 261 | |             .then(self.weight.cmp(&other.weight))
[INFO] [stdout] 262 | |             .then(self.total_degree.cmp(&other.total_degree))
[INFO] [stdout]     | |_____________________________________________________________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/buchberger.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn autoreduce<const N: usize>(mut F: &mut Vec<BoolPoly<N>>) -> Vec<BoolPoly<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: unused variable: `i`
[INFO] [stdout]    --> src/buchberger.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     for i in 0..psize {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[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/buchberger.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn autoreduce<const N: usize>(mut F: &mut Vec<BoolPoly<N>>) -> Vec<BoolPoly<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: unused variable: `i`
[INFO] [stdout]    --> src/buchberger.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     for i in 0..psize {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bmask` is assigned to, but never used
[INFO] [stdout]    --> src/npn.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let mut bmask = best.negated_vars;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_bmask` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bnegated` is assigned to, but never used
[INFO] [stdout]    --> src/npn.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let mut bnegated = best.negated_constant;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_bnegated` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `bmask` is never read
[INFO] [stdout]    --> src/npn.rs:135:13
[INFO] [stdout]     |
[INFO] [stdout] 135 |             bmask = tie.index();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `bnegated` is never read
[INFO] [stdout]    --> src/npn.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |             bnegated = cnegated;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/npn.rs:376:5
[INFO] [stdout]     |
[INFO] [stdout] 376 |     mut a: BoolPoly<N>,
[INFO] [stdout]     |     ----^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `signature_map`
[INFO] [stdout]    --> src/npn.rs:377:5
[INFO] [stdout]     |
[INFO] [stdout] 377 |     signature_map: &mut HashMap<[Block; N], u32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signature_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bmask` is assigned to, but never used
[INFO] [stdout]    --> src/npn.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let mut bmask = best.negated_vars;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_bmask` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bnegated` is assigned to, but never used
[INFO] [stdout]    --> src/npn.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let mut bnegated = best.negated_constant;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_bnegated` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `bmask` is never read
[INFO] [stdout]    --> src/npn.rs:135:13
[INFO] [stdout]     |
[INFO] [stdout] 135 |             bmask = tie.index();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `bnegated` is never read
[INFO] [stdout]    --> src/npn.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |             bnegated = cnegated;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/npn.rs:528:5
[INFO] [stdout]     |
[INFO] [stdout] 528 |     mut f: BoolPoly<N>,
[INFO] [stdout]     |     ----^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/npn.rs:376:5
[INFO] [stdout]     |
[INFO] [stdout] 376 |     mut a: BoolPoly<N>,
[INFO] [stdout]     |     ----^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `signature_map`
[INFO] [stdout]    --> src/npn.rs:377:5
[INFO] [stdout]     |
[INFO] [stdout] 377 |     signature_map: &mut HashMap<[Block; N], u32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signature_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/npn.rs:528:5
[INFO] [stdout]     |
[INFO] [stdout] 528 |     mut f: BoolPoly<N>,
[INFO] [stdout]     |     ----^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transforms.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut old = m.m_vars;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gb`
[INFO] [stdout]   --> src/main.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let gb = buchberger(&mut system, true);
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_gb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lut`
[INFO] [stdout]   --> src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let lut = generate_cost_lut();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_lut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 164 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/transforms.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut old = m.m_vars;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let mut ext = dnf_append_variables::<4, 1>(&poly);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let mut anf = fast_anf_transform(&ext);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gb`
[INFO] [stdout]    --> src/main.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let gb = buchberger(&mut system, false);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_gb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gb`
[INFO] [stdout]   --> src/main.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let gb = buchberger(&mut system, true);
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_gb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lut`
[INFO] [stdout]   --> src/main.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let lut = generate_cost_lut();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_lut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gb5_benchmark` is never used
[INFO] [stdout]   --> src/main.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn gb5_benchmark() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/main.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 164 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NV` is never used
[INFO] [stdout]   --> src/main.rs:76:7
[INFO] [stdout]    |
[INFO] [stdout] 76 | const NV: usize = 5;
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `benchmark_accuracy` is never used
[INFO] [stdout]   --> src/main.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn benchmark_accuracy() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `path_exists` is never used
[INFO] [stdout]    --> src/main.rs:187:4
[INFO] [stdout]     |
[INFO] [stdout] 187 | fn path_exists<const N: usize>(a: BoolPoly<N>, b: BoolPoly<N>) -> bool
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_lower_echelonize` is never used
[INFO] [stdout]    --> src/buchberger.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn fast_lower_echelonize<const N: usize>(F: *mut BoolPoly<N>, rows: usize)
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optimize_cover` is never used
[INFO] [stdout]    --> src/buchberger.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub fn optimize_cover<const N: usize>(F: &Vec<BoolPoly<N>>) -> Vec<BoolPoly<N>>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dnf_or` is never used
[INFO] [stdout]    --> src/buchberger.rs:290:8
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub fn dnf_or<const N: usize>(a: &BoolPoly<N>, b: &BoolPoly<N>) -> BoolPoly<N>
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dnf_and` is never used
[INFO] [stdout]    --> src/buchberger.rs:302:8
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub fn dnf_and<const N: usize>(a: &BoolPoly<N>, b: &BoolPoly<N>) -> BoolPoly<N>
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `system_to_bool_str` is never used
[INFO] [stdout]    --> src/buchberger.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn system_to_bool_str<const N: usize>(F: &mut Vec<BoolPoly<N>>) -> String
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NNTable` is never constructed
[INFO] [stdout]   --> src/npn.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct NNTable<const N: usize>
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `negate_variable`, and `canonicalize_constant` are never used
[INFO] [stdout]   --> src/npn.rs:34:18
[INFO] [stdout]    |
[INFO] [stdout] 29 | / impl<const N: usize> NNTable<N>
[INFO] [stdout] 30 | | where
[INFO] [stdout] 31 | |     [(); (1 << N) / 64 + ((1 << N) % 64 != 0) as usize]: Sized,
[INFO] [stdout] 32 | |     [(); (1 << N) as usize]: Sized,
[INFO] [stdout]    | |___________________________________- associated items in this implementation
[INFO] [stdout] 33 |   {
[INFO] [stdout] 34 |       pub const fn new(table: BoolPoly<N>) -> Self {
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |       pub fn negate_variable(&mut self, var_index: usize) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |       pub fn canonicalize_constant(&mut self) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_anf_negation_canonicalize` is never used
[INFO] [stdout]   --> src/npn.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn fast_anf_negation_canonicalize<const N: usize>(truth_table: BoolPoly<N>) -> BoolPoly<N>
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `anf_compare` is never used
[INFO] [stdout]    --> src/npn.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn anf_compare<const N: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_term_degree_counts` is never used
[INFO] [stdout]    --> src/npn.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn compute_term_degree_counts<const N: usize>(truth_table: &BoolPoly<N>) -> [usize; N]
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_literal_count` is never used
[INFO] [stdout]    --> src/npn.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn compute_literal_count<const N: usize>(truth_table: &BoolPoly<N>) -> usize
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exhaustive_permutation_canonicalize` is never used
[INFO] [stdout]    --> src/npn.rs:277:8
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub fn exhaustive_permutation_canonicalize<const N: usize>(a: BoolPoly<N>) -> BoolPoly<N>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exhaust_vars` is never used
[INFO] [stdout]    --> src/npn.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn exhaust_vars<const N: usize>(a: BoolPoly<N>) -> HashSet<BoolPoly<N>>
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_literal_instances` is never used
[INFO] [stdout]    --> src/npn.rs:597:4
[INFO] [stdout]     |
[INFO] [stdout] 597 | fn count_literal_instances<const N: usize>(truth_table: &BoolPoly<N>) -> [usize; N]
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/splitmix64.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl SplitMix64 {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn new(seed: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `anf_negate_many` is never used
[INFO] [stdout]   --> src/transforms.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn anf_negate_many<const N: usize>(truth_table: &BoolPoly<N>, var_indices: u64) -> BoolPoly<N>
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `anf_negate_variable` is never used
[INFO] [stdout]    --> src/transforms.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn anf_negate_variable<const N: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `anf_reorder_variables` is never used
[INFO] [stdout]    --> src/transforms.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn anf_reorder_variables<const N: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `anf_append_variables` is never used
[INFO] [stdout]    --> src/transforms.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn anf_append_variables<const N: usize, const K: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/boolpoly.rs:539:17
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub fn iter(&self) -> MonomialIter<N> {
[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] 539 |     pub fn iter(&self) -> MonomialIter<'_, N> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]   --> src/buchberger.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     F: &mut Vec<BoolPoly<N>>,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case (notice the capitalization): `f`
[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 `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:101:39
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn autoreduce<const N: usize>(mut F: &mut Vec<BoolPoly<N>>) -> Vec<BoolPoly<N>>
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `P` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |     let mut P = Vec::with_capacity(before_p_index);
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:166:53
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn normal_form<const N: usize>(f: &BoolPoly<N>, F: &[BoolPoly<N>], f_len: usize) -> BoolPoly<N>
[INFO] [stdout]     |                                                     ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:205:41
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn lower_echelonize<const N: usize>(F: &mut Vec<BoolPoly<N>>)
[INFO] [stdout]     |                                         ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:233:46
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn fast_lower_echelonize<const N: usize>(F: *mut BoolPoly<N>, rows: usize)
[INFO] [stdout]     |                                              ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:267:39
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub fn optimize_cover<const N: usize>(F: &Vec<BoolPoly<N>>) -> Vec<BoolPoly<N>>
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let mut ext = dnf_append_variables::<4, 1>(&poly);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let mut anf = fast_anf_transform(&ext);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:319:5
[INFO] [stdout]     |
[INFO] [stdout] 319 |     M: &Vec<BitSet>,
[INFO] [stdout]     |     ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:320:5
[INFO] [stdout]     |
[INFO] [stdout] 320 |     G: &Vec<BoolPoly<N>>,
[INFO] [stdout]     |     ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:354:43
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn system_to_bool_str<const N: usize>(F: &mut Vec<BoolPoly<N>>) -> String
[INFO] [stdout]     |                                           ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gb`
[INFO] [stdout]    --> src/main.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let gb = buchberger(&mut system, false);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_gb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gb5_benchmark` is never used
[INFO] [stdout]   --> src/main.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn gb5_benchmark() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NV` is never used
[INFO] [stdout]   --> src/main.rs:76:7
[INFO] [stdout]    |
[INFO] [stdout] 76 | const NV: usize = 5;
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `benchmark_accuracy` is never used
[INFO] [stdout]   --> src/main.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn benchmark_accuracy() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `path_exists` is never used
[INFO] [stdout]    --> src/main.rs:187:4
[INFO] [stdout]     |
[INFO] [stdout] 187 | fn path_exists<const N: usize>(a: BoolPoly<N>, b: BoolPoly<N>) -> bool
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_lower_echelonize` is never used
[INFO] [stdout]    --> src/buchberger.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn fast_lower_echelonize<const N: usize>(F: *mut BoolPoly<N>, rows: usize)
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optimize_cover` is never used
[INFO] [stdout]    --> src/buchberger.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub fn optimize_cover<const N: usize>(F: &Vec<BoolPoly<N>>) -> Vec<BoolPoly<N>>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dnf_or` is never used
[INFO] [stdout]    --> src/buchberger.rs:290:8
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub fn dnf_or<const N: usize>(a: &BoolPoly<N>, b: &BoolPoly<N>) -> BoolPoly<N>
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dnf_and` is never used
[INFO] [stdout]    --> src/buchberger.rs:302:8
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub fn dnf_and<const N: usize>(a: &BoolPoly<N>, b: &BoolPoly<N>) -> BoolPoly<N>
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `system_to_bool_str` is never used
[INFO] [stdout]    --> src/buchberger.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn system_to_bool_str<const N: usize>(F: &mut Vec<BoolPoly<N>>) -> String
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NNTable` is never constructed
[INFO] [stdout]   --> src/npn.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct NNTable<const N: usize>
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `negate_variable`, and `canonicalize_constant` are never used
[INFO] [stdout]   --> src/npn.rs:34:18
[INFO] [stdout]    |
[INFO] [stdout] 29 | / impl<const N: usize> NNTable<N>
[INFO] [stdout] 30 | | where
[INFO] [stdout] 31 | |     [(); (1 << N) / 64 + ((1 << N) % 64 != 0) as usize]: Sized,
[INFO] [stdout] 32 | |     [(); (1 << N) as usize]: Sized,
[INFO] [stdout]    | |___________________________________- associated items in this implementation
[INFO] [stdout] 33 |   {
[INFO] [stdout] 34 |       pub const fn new(table: BoolPoly<N>) -> Self {
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |       pub fn negate_variable(&mut self, var_index: usize) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |       pub fn canonicalize_constant(&mut self) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_anf_negation_canonicalize` is never used
[INFO] [stdout]   --> src/npn.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn fast_anf_negation_canonicalize<const N: usize>(truth_table: BoolPoly<N>) -> BoolPoly<N>
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `anf_compare` is never used
[INFO] [stdout]    --> src/npn.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn anf_compare<const N: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_term_degree_counts` is never used
[INFO] [stdout]    --> src/npn.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn compute_term_degree_counts<const N: usize>(truth_table: &BoolPoly<N>) -> [usize; N]
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_literal_count` is never used
[INFO] [stdout]    --> src/npn.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn compute_literal_count<const N: usize>(truth_table: &BoolPoly<N>) -> usize
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exhaustive_permutation_canonicalize` is never used
[INFO] [stdout]    --> src/npn.rs:277:8
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub fn exhaustive_permutation_canonicalize<const N: usize>(a: BoolPoly<N>) -> BoolPoly<N>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exhaust_vars` is never used
[INFO] [stdout]    --> src/npn.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn exhaust_vars<const N: usize>(a: BoolPoly<N>) -> HashSet<BoolPoly<N>>
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_literal_instances` is never used
[INFO] [stdout]    --> src/npn.rs:597:4
[INFO] [stdout]     |
[INFO] [stdout] 597 | fn count_literal_instances<const N: usize>(truth_table: &BoolPoly<N>) -> [usize; N]
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/splitmix64.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl SplitMix64 {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn new(seed: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `anf_negate_many` is never used
[INFO] [stdout]   --> src/transforms.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn anf_negate_many<const N: usize>(truth_table: &BoolPoly<N>, var_indices: u64) -> BoolPoly<N>
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `anf_negate_variable` is never used
[INFO] [stdout]    --> src/transforms.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn anf_negate_variable<const N: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `anf_reorder_variables` is never used
[INFO] [stdout]    --> src/transforms.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub fn anf_reorder_variables<const N: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `anf_append_variables` is never used
[INFO] [stdout]    --> src/transforms.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn anf_append_variables<const N: usize, const K: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/boolpoly.rs:539:17
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub fn iter(&self) -> MonomialIter<N> {
[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] 539 |     pub fn iter(&self) -> MonomialIter<'_, N> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]   --> src/buchberger.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     F: &mut Vec<BoolPoly<N>>,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case (notice the capitalization): `f`
[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 `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:101:39
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn autoreduce<const N: usize>(mut F: &mut Vec<BoolPoly<N>>) -> Vec<BoolPoly<N>>
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `P` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |     let mut P = Vec::with_capacity(before_p_index);
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:166:53
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn normal_form<const N: usize>(f: &BoolPoly<N>, F: &[BoolPoly<N>], f_len: usize) -> BoolPoly<N>
[INFO] [stdout]     |                                                     ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:205:41
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn lower_echelonize<const N: usize>(F: &mut Vec<BoolPoly<N>>)
[INFO] [stdout]     |                                         ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:233:46
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn fast_lower_echelonize<const N: usize>(F: *mut BoolPoly<N>, rows: usize)
[INFO] [stdout]     |                                              ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:267:39
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub fn optimize_cover<const N: usize>(F: &Vec<BoolPoly<N>>) -> Vec<BoolPoly<N>>
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:319:5
[INFO] [stdout]     |
[INFO] [stdout] 319 |     M: &Vec<BitSet>,
[INFO] [stdout]     |     ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:320:5
[INFO] [stdout]     |
[INFO] [stdout] 320 |     G: &Vec<BoolPoly<N>>,
[INFO] [stdout]     |     ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `F` should have a snake case name
[INFO] [stdout]    --> src/buchberger.rs:354:43
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn system_to_bool_str<const N: usize>(F: &mut Vec<BoolPoly<N>>) -> String
[INFO] [stdout]     |                                           ^ help: convert the identifier to snake case (notice the capitalization): `f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `const_convert` is declared but not used
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(const_convert)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `const_index` is declared but not used
[INFO] [stdout]  --> src/main.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(const_index)]
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `const_convert` is declared but not used
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(const_convert)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `const_index` is declared but not used
[INFO] [stdout]  --> src/main.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | #![feature(const_index)]
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.26s
[INFO] running `Command { std: "docker" "inspect" "5a72f3cf586595db8768bd702a40f3d64071fa439198fd5a5cdde5619ad3ad16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5a72f3cf586595db8768bd702a40f3d64071fa439198fd5a5cdde5619ad3ad16", kill_on_drop: false }`
[INFO] [stdout] 5a72f3cf586595db8768bd702a40f3d64071fa439198fd5a5cdde5619ad3ad16
