[INFO] cloning repository https://github.com/tildedave/rust-number-theory
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tildedave/rust-number-theory" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftildedave%2Frust-number-theory", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftildedave%2Frust-number-theory'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 853b50d286f3733fd080dd421af5691f5991221a
[INFO] testing tildedave/rust-number-theory against 1.98.0-beta.8+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftildedave%2Frust-number-theory" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tildedave/rust-number-theory
[INFO] finished tweaking git repo https://github.com/tildedave/rust-number-theory
[INFO] tweaked toml for git repo https://github.com/tildedave/rust-number-theory written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tildedave/rust-number-theory on toolchain 1.98.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tildedave/rust-number-theory 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" "+1.98.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unicode-ident v1.0.14
[INFO] [stderr]   Downloaded syn v2.0.94
[INFO] [stderr]   Downloaded libc v0.2.169
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6
[INFO] running `Command { std: "docker" "start" "b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling syn v2.0.94
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling num v0.2.1
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rust-number-theory v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/chap1.rs:567:26
[INFO] [stdout]     |
[INFO] [stdout] 567 |         y = mod_positive((t * t), p);
[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] 567 -         y = mod_positive((t * t), p);
[INFO] [stdout] 567 +         y = mod_positive(t * t, p);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::chap1::mod_exp`
[INFO] [stdout]  --> src/finite_field.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::chap1::mod_exp;
[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: `Rem`
[INFO] [stdout]  --> src/finite_field.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::ops::{Add, Mul, Rem, Sub};
[INFO] [stdout]   |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/chap1.rs:540:9
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let mut z = mod_exp(n, q, p);
[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/finite_field.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut result = [0; EXP];
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/finite_field.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut result = [0; EXP];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]   --> src/poly.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn add(self, rhs: Self) -> Self::Output {
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]   --> src/poly.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn mul(self, rhs: Self) -> Self::Output {
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mod_exp` is never used
[INFO] [stdout]   --> src/chap1.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn mod_exp<T>(g: T, n: T, p: T) -> T
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mod_exp2` is never used
[INFO] [stdout]   --> src/chap1.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn mod_exp2<T>(g: T, n: T, p: T) -> T
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mod_inverse` is never used
[INFO] [stdout]   --> src/chap1.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn mod_inverse<T>(m: T, p: T) -> T
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]    --> src/chap1.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn gcd<T>(a: T, b: T) -> T
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd_binary` is never used
[INFO] [stdout]    --> src/chap1.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn gcd_binary<T>(a: T, b: T) -> T
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd_extended` is never used
[INFO] [stdout]    --> src/chap1.rs:210:4
[INFO] [stdout]     |
[INFO] [stdout] 210 | fn gcd_extended<T>(a: T, b: T) -> (T, T, T)
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chinese_remainder` is never used
[INFO] [stdout]    --> src/chap1.rs:242:4
[INFO] [stdout]     |
[INFO] [stdout] 242 | fn chinese_remainder<T>(residues: Vec<(T, T)>) -> T
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bound` is never constructed
[INFO] [stdout]    --> src/chap1.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | struct Bound<T> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `continued_fraction` is never used
[INFO] [stdout]    --> src/chap1.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn continued_fraction<T>(lb: (T, T), ub: (T, T)) -> (Vec<T>, Bound<T>)
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `isqrt` is never used
[INFO] [stdout]    --> src/chap1.rs:380:8
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub fn isqrt<T>(n: T) -> T
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sqrt_mod_p` is never used
[INFO] [stdout]    --> src/chap1.rs:500:8
[INFO] [stdout]     |
[INFO] [stdout] 500 | pub fn sqrt_mod_p<T>(a: T, p: T) -> Result<T, String>
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cornacchia_algorithm` is never used
[INFO] [stdout]    --> src/chap1.rs:578:8
[INFO] [stdout]     |
[INFO] [stdout] 578 | pub fn cornacchia_algorithm<T>(d: T, p: T) -> Result<(T, T), String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FieldElement` is never constructed
[INFO] [stdout]   --> src/finite_field.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct FieldElement<const CHAR: u32, const EXP: usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_int`, `degree`, and `divmod` are never used
[INFO] [stdout]   --> src/finite_field.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl<const CHAR: u32, const EXP: usize> FieldElement<CHAR, EXP> {
[INFO] [stdout]    | --------------------------------------------------------------- associated items in this implementation
[INFO] [stdout] 20 |     pub fn from_int(i: u32) -> FieldElement<CHAR, EXP> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn degree(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn divmod(&self, d: &Self) -> (Self, Self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GF2nElem` is never constructed
[INFO] [stdout]    --> src/finite_field.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | struct GF2nElem<const EXP: u32> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Poly` is never constructed
[INFO] [stdout]  --> src/poly.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Poly<T, const CHAR: u16> {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mod_positive` is never used
[INFO] [stdout]  --> src/utils.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn mod_positive<T>(n: T, a: T) -> T
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `leftmost_bit` is never used
[INFO] [stdout]   --> src/utils.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn leftmost_bit<T>(g: T) -> T
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prime_factor` is never used
[INFO] [stdout]   --> src/utils.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn prime_factor(n: i32) -> Vec<i32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 16.25s
[INFO] running `Command { std: "docker" "inspect" "b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust-number-theory v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/chap1.rs:567:26
[INFO] [stdout]     |
[INFO] [stdout] 567 |         y = mod_positive((t * t), p);
[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] 567 -         y = mod_positive((t * t), p);
[INFO] [stdout] 567 +         y = mod_positive(t * t, p);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::chap1::mod_exp`
[INFO] [stdout]  --> src/finite_field.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::chap1::mod_exp;
[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: `Rem`
[INFO] [stdout]  --> src/finite_field.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::ops::{Add, Mul, Rem, Sub};
[INFO] [stdout]   |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/chap1.rs:540:9
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let mut z = mod_exp(n, q, p);
[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/finite_field.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut result = [0; EXP];
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/finite_field.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let mut result = [0; EXP];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]   --> src/poly.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn add(self, rhs: Self) -> Self::Output {
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]   --> src/poly.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn mul(self, rhs: Self) -> Self::Output {
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Poly` is never constructed
[INFO] [stdout]  --> src/poly.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Poly<T, const CHAR: u16> {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.83s
[INFO] running `Command { std: "docker" "inspect" "b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/chap1.rs:567:26
[INFO] [stderr]     |
[INFO] [stderr] 567 |         y = mod_positive((t * t), p);
[INFO] [stderr]     |                          ^     ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 567 -         y = mod_positive((t * t), p);
[INFO] [stderr] 567 +         y = mod_positive(t * t, p);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::chap1::mod_exp`
[INFO] [stderr]  --> src/finite_field.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::chap1::mod_exp;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Rem`
[INFO] [stderr]  --> src/finite_field.rs:8:26
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::ops::{Add, Mul, Rem, Sub};
[INFO] [stderr]   |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/chap1.rs:540:9
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let mut z = mod_exp(n, q, p);
[INFO] [stderr]     |         ----^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/finite_field.rs:113:13
[INFO] [stderr]     |
[INFO] [stderr] 113 |         let mut result = [0; EXP];
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result`
[INFO] [stderr]    --> src/finite_field.rs:113:13
[INFO] [stderr]     |
[INFO] [stderr] 113 |         let mut result = [0; EXP];
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rhs`
[INFO] [stderr]   --> src/poly.rs:29:18
[INFO] [stderr]    |
[INFO] [stderr] 29 |     fn add(self, rhs: Self) -> Self::Output {
[INFO] [stderr]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rhs`
[INFO] [stderr]   --> src/poly.rs:37:18
[INFO] [stderr]    |
[INFO] [stderr] 37 |     fn mul(self, rhs: Self) -> Self::Output {
[INFO] [stderr]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Poly` is never constructed
[INFO] [stderr]  --> src/poly.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 7 | struct Poly<T, const CHAR: u16> {
[INFO] [stderr]   |        ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `rust-number-theory` (bin "rust-number-theory" test) generated 9 warnings (run `cargo fix --bin "rust-number-theory" -p rust-number-theory --tests` to apply 8 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/rust_number_theory-6c52170a9127ed73)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test chap1::tests::test_cornacchia ... ok
[INFO] [stdout] test chap1::tests::test_gcd_extended ... ok
[INFO] [stdout] test chap1::tests::test_gcd_simple ... ok
[INFO] [stdout] test chap1::tests::test_gcd_binary ... ok
[INFO] [stdout] test chap1::tests::test_kronecker_symbol ... ok
[INFO] [stdout] test chap1::tests::test_isqrt ... ok
[INFO] [stdout] test chap1::tests::test_leftmost_bit ... ok
[INFO] [stdout] test chap1::tests::test_mod_exp2_powers_of_5_mod_7 ... ok
[INFO] [stdout] test chap1::tests::test_mod_exp_powers_of_5_mod_7 ... ok
[INFO] [stdout] test chap1::tests::test_mod_inverse_for_7 ... ok
[INFO] [stdout] test chap1::tests::test_quadratic_residues ... ok
[INFO] [stdout] test chap1::tests::test_real_approx ... ok
[INFO] [stdout] test chap1::tests::test_sqrt_mod_p ... ok
[INFO] [stdout] test finite_field::tests::test_basics ... ok
[INFO] [stdout] test utils::tests::test_prime_factors ... ok
[INFO] [stdout] test finite_field::tests::test_divmod ... ok
[INFO] [stdout] test finite_field::tests::test_gf2 ... ok
[INFO] [stdout] test chap1::tests::test_chinese_remainder ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6", kill_on_drop: false }`
[INFO] [stdout] b3d0810e6b94ff8457752d1c49352c1ce97ffd5827491e707375b11563f9f5b6
