[INFO] fetching crate mns 0.1.0... [INFO] linting mns-0.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate mns 0.1.0 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate mns 0.1.0 [INFO] finished tweaking crates.io crate mns 0.1.0 [INFO] tweaked toml for crates.io crate mns 0.1.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate mns 0.1.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate mns 0.1.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded dynasmrt v3.2.1 [INFO] [stderr] Downloaded hashx v0.3.4 [INFO] [stderr] Downloaded equix v0.2.5 [INFO] [stderr] Downloaded dynasm v3.2.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3acf7306ea12c811d2a35416aac9b9c5e2027724fc11ba33ec00695afc40b405 [INFO] running `Command { std: "docker" "start" "-a" "3acf7306ea12c811d2a35416aac9b9c5e2027724fc11ba33ec00695afc40b405", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3acf7306ea12c811d2a35416aac9b9c5e2027724fc11ba33ec00695afc40b405", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3acf7306ea12c811d2a35416aac9b9c5e2027724fc11ba33ec00695afc40b405", kill_on_drop: false }` [INFO] [stdout] 3acf7306ea12c811d2a35416aac9b9c5e2027724fc11ba33ec00695afc40b405 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3067c6c5f6ca9d25a6b9c5edb6a92f5918f56fb4fb64a04107fdfaf3921681ab [INFO] running `Command { std: "docker" "start" "-a" "3067c6c5f6ca9d25a6b9c5edb6a92f5918f56fb4fb64a04107fdfaf3921681ab", kill_on_drop: false }` [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Compiling bitflags v2.9.3 [INFO] [stderr] Checking fixed-capacity-vec v1.0.1 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Checking memmap2 v0.9.8 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Checking blake2 v0.10.6 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling thiserror-impl v2.0.16 [INFO] [stderr] Compiling dynasm v3.2.1 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling visibility v0.1.1 [INFO] [stderr] Checking thiserror v2.0.16 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking ed25519-dalek v2.2.0 [INFO] [stderr] Checking dynasmrt v3.2.1 [INFO] [stderr] Checking hashx v0.3.4 [INFO] [stderr] Checking equix v0.2.5 [INFO] [stderr] Checking mns v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `verify_bytes` [INFO] [stdout] --> src/lib.rs:1:30 [INFO] [stdout] | [INFO] [stdout] 1 | use equix::{EquiX, Solution, verify_bytes}; [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: `verify_bytes` [INFO] [stdout] --> src/lib.rs:1:30 [INFO] [stdout] | [INFO] [stdout] 1 | use equix::{EquiX, Solution, verify_bytes}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TIMESTAMPING_DIFFICULTY` is never used [INFO] [stdout] --> src/lib.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const TIMESTAMPING_DIFFICULTY: u8 = 20; [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 `TIMESTAMPING_TAG` is never used [INFO] [stdout] --> src/lib.rs:38:7 [INFO] [stdout] | [INFO] [stdout] 38 | const TIMESTAMPING_TAG: &[u8; 16] = b"mns/timestamping"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TIMESTAMPING_DIFFICULTY` is never used [INFO] [stdout] --> src/lib.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const TIMESTAMPING_DIFFICULTY: u8 = 20; [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 `TIMESTAMPING_TAG` is never used [INFO] [stdout] --> src/lib.rs:38:7 [INFO] [stdout] | [INFO] [stdout] 38 | const TIMESTAMPING_TAG: &[u8; 16] = b"mns/timestamping"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[u8; 5]` which implements the `Copy` trait [INFO] [stdout] --> src/name.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 24 | Name(bytes.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[u8; 5]` which implements the `Copy` trait [INFO] [stdout] --> src/name.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 24 | Name(bytes.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:156:12 [INFO] [stdout] | [INFO] [stdout] 156 | if !self [INFO] [stdout] | ____________^ [INFO] [stdout] 157 | | .public_key [INFO] [stdout] 158 | | .verify( [INFO] [stdout] 159 | | &challenge, [INFO] [stdout] ... | [INFO] [stdout] 162 | | .is_ok() [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 156 ~ if self [INFO] [stdout] 157 + .public_key [INFO] [stdout] 158 + .verify( [INFO] [stdout] 159 + &challenge, [INFO] [stdout] 160 + &Signature::from_bytes(signature_bytes.try_into().unwrap()), [INFO] [stdout] 161 + ).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:138:53 [INFO] [stdout] | [INFO] [stdout] 138 | let challenge = hash(&[NAME_GENERATION_TAG, &nonce_bytes]); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `nonce_bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:147:13 [INFO] [stdout] | [INFO] [stdout] 147 | &nonce_bytes, [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `nonce_bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:148:13 [INFO] [stdout] | [INFO] [stdout] 148 | &signature_bytes, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `signature_bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 149 | &solution_bytes, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `solution_bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:156:12 [INFO] [stdout] | [INFO] [stdout] 156 | if !self [INFO] [stdout] | ____________^ [INFO] [stdout] 157 | | .public_key [INFO] [stdout] 158 | | .verify( [INFO] [stdout] 159 | | &challenge, [INFO] [stdout] ... | [INFO] [stdout] 162 | | .is_ok() [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 156 ~ if self [INFO] [stdout] 157 + .public_key [INFO] [stdout] 158 + .verify( [INFO] [stdout] 159 + &challenge, [INFO] [stdout] 160 + &Signature::from_bytes(signature_bytes.try_into().unwrap()), [INFO] [stdout] 161 + ).is_err() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:138:53 [INFO] [stdout] | [INFO] [stdout] 138 | let challenge = hash(&[NAME_GENERATION_TAG, &nonce_bytes]); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `nonce_bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:147:13 [INFO] [stdout] | [INFO] [stdout] 147 | &nonce_bytes, [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `nonce_bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:148:13 [INFO] [stdout] | [INFO] [stdout] 148 | &signature_bytes, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `signature_bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 149 | &solution_bytes, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `solution_bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.93s [INFO] running `Command { std: "docker" "inspect" "3067c6c5f6ca9d25a6b9c5edb6a92f5918f56fb4fb64a04107fdfaf3921681ab", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3067c6c5f6ca9d25a6b9c5edb6a92f5918f56fb4fb64a04107fdfaf3921681ab", kill_on_drop: false }` [INFO] [stdout] 3067c6c5f6ca9d25a6b9c5edb6a92f5918f56fb4fb64a04107fdfaf3921681ab