[INFO] fetching crate fedimint-ring 0.16.20...
[INFO] checking fedimint-ring-0.16.20 against master#c2f2db79ca3024f68d22b45aa22b570775c2c4ad for pr-124157
[INFO] extracting crate fedimint-ring 0.16.20 into /workspace/builds/worker-2-tc1/source
[INFO] validating manifest of crates.io crate fedimint-ring 0.16.20 on toolchain c2f2db79ca3024f68d22b45aa22b570775c2c4ad
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate fedimint-ring 0.16.20
[INFO] finished tweaking crates.io crate fedimint-ring 0.16.20
[INFO] tweaked toml for crates.io crate fedimint-ring 0.16.20 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 28 packages to latest compatible versions
[INFO] [stderr]       Adding spin v0.5.2 (latest: v0.9.8)
[INFO] [stderr]       Adding untrusted v0.7.1 (latest: v0.9.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0f3231badb209854d50f6b394c2e276eb8d3f0609f3d745c3b43568b6fb79b68
[INFO] running `Command { std: "docker" "start" "-a" "0f3231badb209854d50f6b394c2e276eb8d3f0609f3d745c3b43568b6fb79b68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0f3231badb209854d50f6b394c2e276eb8d3f0609f3d745c3b43568b6fb79b68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0f3231badb209854d50f6b394c2e276eb8d3f0609f3d745c3b43568b6fb79b68", kill_on_drop: false }`
[INFO] [stdout] 0f3231badb209854d50f6b394c2e276eb8d3f0609f3d745c3b43568b6fb79b68
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 46b19be41058e73971ec7738f3bbb4eaa7ab85757cb8d1aacbfaa6edec2b0710
[INFO] running `Command { std: "docker" "start" "-a" "46b19be41058e73971ec7738f3bbb4eaa7ab85757cb8d1aacbfaa6edec2b0710", kill_on_drop: false }`
[INFO] [stderr]    Compiling fedimint-ring v0.16.20 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> build.rs:625:21
[INFO] [stdout]     |
[INFO] [stdout] 625 |         "x86_64" => ("win64"),
[INFO] [stdout]     |                     ^       ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 625 -         "x86_64" => ("win64"),
[INFO] [stdout] 625 +         "x86_64" => "win64",
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> build.rs:626:18
[INFO] [stdout]     |
[INFO] [stdout] 626 |         "x86" => ("win32"),
[INFO] [stdout]     |                  ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 626 -         "x86" => ("win32"),
[INFO] [stdout] 626 +         "x86" => "win32",
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/rand.rs:104:34
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub trait RandomlyConstructable: self::sealed::RandomlyConstructable {}
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:67:23
[INFO] [stdout]     |
[INFO] [stdout] 67  | #![deny(missing_docs, unused_qualifications, variant_size_differences)]
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 104 - pub trait RandomlyConstructable: self::sealed::RandomlyConstructable {}
[INFO] [stdout] 104 + pub trait RandomlyConstructable: sealed::RandomlyConstructable {}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/rand.rs:105:46
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl<T> RandomlyConstructable for T where T: self::sealed::RandomlyConstructable {}
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 105 - impl<T> RandomlyConstructable for T where T: self::sealed::RandomlyConstructable {}
[INFO] [stdout] 105 + impl<T> RandomlyConstructable for T where T: sealed::RandomlyConstructable {}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/rsa/signing.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |                 error::KeyRejected::invalid_encoding(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 169 -                 error::KeyRejected::invalid_encoding(),
[INFO] [stdout] 169 +                 KeyRejected::invalid_encoding(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/rsa/signing.rs:316:26
[INFO] [stdout]     |
[INFO] [stdout] 316 |             .map_err(|_| error::KeyRejected::invalid_encoding())?;
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 316 -             .map_err(|_| error::KeyRejected::invalid_encoding())?;
[INFO] [stdout] 316 +             .map_err(|_| KeyRejected::invalid_encoding())?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/rsa/signing.rs:445:24
[INFO] [stdout]     |
[INFO] [stdout] 445 |             return Err(error::KeyRejected::private_modulus_len_not_multiple_of_512_bits());
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 445 -             return Err(error::KeyRejected::private_modulus_len_not_multiple_of_512_bits());
[INFO] [stdout] 445 +             return Err(KeyRejected::private_modulus_len_not_multiple_of_512_bits());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]     --> src/arithmetic/bigint.rs:1615:25
[INFO] [stdout]      |
[INFO] [stdout] 1615 |             let mut r = std::vec::Vec::from(*r_input);
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]     --> src/lib.rs:67:23
[INFO] [stdout]      |
[INFO] [stdout] 67   | #![deny(missing_docs, unused_qualifications, variant_size_differences)]
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1615 -             let mut r = std::vec::Vec::from(*r_input);
[INFO] [stdout] 1615 +             let mut r = Vec::from(*r_input);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/ec/suite_b/ecdh.rs:151:14
[INFO] [stdout]     |
[INFO] [stdout] 151 |             &super::super::ops::p256::COMMON_OPS,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 151 -             &super::super::ops::p256::COMMON_OPS,
[INFO] [stdout] 151 +             &ops::p256::COMMON_OPS,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/ec/suite_b/ecdh.rs:157:14
[INFO] [stdout]     |
[INFO] [stdout] 157 |             &super::super::ops::p384::COMMON_OPS,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 157 -             &super::super::ops::p384::COMMON_OPS,
[INFO] [stdout] 157 +             &ops::p384::COMMON_OPS,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/ec/suite_b/public_key.rs:100:14
[INFO] [stdout]     |
[INFO] [stdout] 100 |             &ops::p256::PUBLIC_KEY_OPS
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 100 -             &ops::p256::PUBLIC_KEY_OPS
[INFO] [stdout] 100 +             &p256::PUBLIC_KEY_OPS
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/ec/suite_b/public_key.rs:102:14
[INFO] [stdout]     |
[INFO] [stdout] 102 |             &ops::p384::PUBLIC_KEY_OPS
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 102 -             &ops::p384::PUBLIC_KEY_OPS
[INFO] [stdout] 102 +             &p384::PUBLIC_KEY_OPS
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/rand.rs:104:34
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub trait RandomlyConstructable: self::sealed::RandomlyConstructable {}
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 104 - pub trait RandomlyConstructable: self::sealed::RandomlyConstructable {}
[INFO] [stdout] 104 + pub trait RandomlyConstructable: sealed::RandomlyConstructable {}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/rand.rs:105:46
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl<T> RandomlyConstructable for T where T: self::sealed::RandomlyConstructable {}
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 105 - impl<T> RandomlyConstructable for T where T: self::sealed::RandomlyConstructable {}
[INFO] [stdout] 105 + impl<T> RandomlyConstructable for T where T: sealed::RandomlyConstructable {}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/rsa/signing.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |                 error::KeyRejected::invalid_encoding(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 169 -                 error::KeyRejected::invalid_encoding(),
[INFO] [stdout] 169 +                 KeyRejected::invalid_encoding(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/rsa/signing.rs:316:26
[INFO] [stdout]     |
[INFO] [stdout] 316 |             .map_err(|_| error::KeyRejected::invalid_encoding())?;
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 316 -             .map_err(|_| error::KeyRejected::invalid_encoding())?;
[INFO] [stdout] 316 +             .map_err(|_| KeyRejected::invalid_encoding())?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unnecessary qualification
[INFO] [stdout]    --> src/rsa/signing.rs:445:24
[INFO] [stdout]     |
[INFO] [stdout] 445 |             return Err(error::KeyRejected::private_modulus_len_not_multiple_of_512_bits());
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 445 -             return Err(error::KeyRejected::private_modulus_len_not_multiple_of_512_bits());
[INFO] [stdout] 445 +             return Err(KeyRejected::private_modulus_len_not_multiple_of_512_bits());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `chunks_fixed_mut` is never used
[INFO] [stdout]   --> src/polyfill/chunks_fixed.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait ChunksFixedMut<'a, Chunk>
[INFO] [stdout]    |           -------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn chunks_fixed_mut(self) -> Self::MutIterator;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cpu_features` is never read
[INFO] [stdout]   --> src/digest.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub(crate) struct BlockContext {
[INFO] [stdout]    |                   ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     cpu_features: cpu::Features,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BlockContext` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_byte_array` is never used
[INFO] [stdout]   --> src/endian.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub trait FromByteArray<T> {
[INFO] [stdout]    |           ------------- associated function in this trait
[INFO] [stdout] 30 |     fn from_byte_array(a: &T) -> Self;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fedimint-ring` (lib) due to 6 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: method `chunks_fixed_mut` is never used
[INFO] [stdout]   --> src/polyfill/chunks_fixed.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait ChunksFixedMut<'a, Chunk>
[INFO] [stdout]    |           -------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn chunks_fixed_mut(self) -> Self::MutIterator;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_words_less_safe` is never used
[INFO] [stdout]    --> src/aead/chacha.rs:215:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl Counter {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 215 |     fn into_words_less_safe(self) -> [u32; 4] {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_words_less_safe` is never used
[INFO] [stdout]    --> src/aead/chacha.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | impl Iv {
[INFO] [stdout]     | ------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn into_words_less_safe(self) -> [u32; 4] {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chacha20_ctr32` is never used
[INFO] [stdout]   --> src/aead/chacha/fallback.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(super) fn chacha20_ctr32(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chacha_core` is never used
[INFO] [stdout]   --> src/aead/chacha/fallback.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn chacha_core(output: &mut [u8; BLOCK_LEN], input: &State) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quarterround` is never used
[INFO] [stdout]   --> src/aead/chacha/fallback.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn quarterround(x: &mut State, a: usize, b: usize, c: usize, d: usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `State` is never used
[INFO] [stdout]    --> src/aead/chacha/fallback.rs:102:6
[INFO] [stdout]     |
[INFO] [stdout] 102 | type State = [u32; BLOCK_LEN];
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cpu_features` is never read
[INFO] [stdout]   --> src/digest.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub(crate) struct BlockContext {
[INFO] [stdout]    |                   ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     cpu_features: cpu::Features,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BlockContext` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_byte_array` is never used
[INFO] [stdout]   --> src/endian.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub trait FromByteArray<T> {
[INFO] [stdout]    |           ------------- associated function in this trait
[INFO] [stdout] 30 |     fn from_byte_array(a: &T) -> Self;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]     --> src/arithmetic/bigint.rs:1486:17
[INFO] [stdout]      |
[INFO] [stdout] 1486 |                 unsafe impl SmallerModulus<MM> for M {}
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: move this `impl` block outside the of the current closure `<unnameable>` and up 2 bodies
[INFO] [stdout]      = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]      = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]      = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]      = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]     --> src/arithmetic/bigint.rs:1487:17
[INFO] [stdout]      |
[INFO] [stdout] 1487 |                 unsafe impl NotMuchSmallerModulus<MM> for M {}
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: move this `impl` block outside the of the current closure `<unnameable>` and up 2 bodies
[INFO] [stdout]      = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]      = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]      = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors; 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fedimint-ring` (lib test) due to 11 previous errors; 11 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "46b19be41058e73971ec7738f3bbb4eaa7ab85757cb8d1aacbfaa6edec2b0710", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "46b19be41058e73971ec7738f3bbb4eaa7ab85757cb8d1aacbfaa6edec2b0710", kill_on_drop: false }`
[INFO] [stdout] 46b19be41058e73971ec7738f3bbb4eaa7ab85757cb8d1aacbfaa6edec2b0710
