[INFO] fetching crate harsh 0.2.2... [INFO] linting harsh-0.2.2 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate harsh 0.2.2 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate harsh 0.2.2 [INFO] finished tweaking crates.io crate harsh 0.2.2 [INFO] tweaked toml for crates.io crate harsh 0.2.2 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate harsh 0.2.2 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 harsh 0.2.2 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 proc-macro2 v1.0.30 [INFO] [stderr] Downloaded syn v1.0.80 [INFO] [stderr] Downloaded libc v0.2.104 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 799024eaf6b75c8b145f5fd6f0455aaf0b4bf18047cd8e88e9e36da472cc4aef [INFO] running `Command { std: "docker" "start" "-a" "799024eaf6b75c8b145f5fd6f0455aaf0b4bf18047cd8e88e9e36da472cc4aef", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "799024eaf6b75c8b145f5fd6f0455aaf0b4bf18047cd8e88e9e36da472cc4aef", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "799024eaf6b75c8b145f5fd6f0455aaf0b4bf18047cd8e88e9e36da472cc4aef", kill_on_drop: false }` [INFO] [stdout] 799024eaf6b75c8b145f5fd6f0455aaf0b4bf18047cd8e88e9e36da472cc4aef [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 1c867dc4f9a71e83a99b2dbf756e1974bb07aba6fc1d3683b38e7a46ae4c39e6 [INFO] running `Command { std: "docker" "start" "-a" "1c867dc4f9a71e83a99b2dbf756e1974bb07aba6fc1d3683b38e7a46ae4c39e6", kill_on_drop: false }` [INFO] [stderr] Compiling semver v1.0.4 [INFO] [stderr] Compiling serde v1.0.130 [INFO] [stderr] Compiling libc v0.2.104 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling proc-macro2 v1.0.30 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling serde_json v1.0.68 [INFO] [stderr] Checking itoa v0.4.8 [INFO] [stderr] Compiling syn v1.0.80 [INFO] [stderr] Checking plotters-backend v0.3.2 [INFO] [stderr] Compiling serde_derive v1.0.130 [INFO] [stderr] Checking unicode-width v0.1.9 [INFO] [stderr] Checking itertools v0.10.1 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Checking walkdir v2.3.2 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking harsh v0.2.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: doc quote line without `>` marker [INFO] [stdout] --> src/lib.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | //! Regardless of the quality of your salt, this algorithm is fairly easy to [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this not intended to be a quote at all, escape it with `\>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: add markers to start of line [INFO] [stdout] | [INFO] [stdout] 12 | //! > Regardless of the quality of your salt, this algorithm is fairly easy to [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc quote line without `>` marker [INFO] [stdout] --> src/lib.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | //! crack. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this not intended to be a quote at all, escape it with `\>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: add markers to start of line [INFO] [stdout] | [INFO] [stdout] 13 | //! > crack. [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> src/builder.rs:111:30 [INFO] [stdout] | [INFO] [stdout] 111 | let salt = self.salt.unwrap_or_else(Vec::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `Iterator::fold` on a type that implements `Try` [INFO] [stdout] --> src/harsh.rs:285:30 [INFO] [stdout] | [INFO] [stdout] 285 | input.iter().enumerate().fold(Some(0), |a, (idx, &value)| { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 286 | | let pos = alphabet.iter().position(|&item| item == value)? as u64; [INFO] [stdout] 287 | | let b = (alphabet.len() as u64).checked_pow((input.len() - idx - 1) as u32)?; [INFO] [stdout] 288 | | let c = pos.checked_mul(b)?; [INFO] [stdout] 289 | | a.map(|a| a + c) [INFO] [stdout] 290 | | }) [INFO] [stdout] | |______^ help: use `try_fold` instead: `try_fold(0, |a, (idx, &value)| ...)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_try_fold [INFO] [stdout] = note: `#[warn(clippy::manual_try_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Checking plotters-svg v0.3.1 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Compiling cast v0.2.7 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking csv-core v0.1.10 [INFO] [stderr] Checking criterion-plot v0.4.4 [INFO] [stderr] Checking rayon-core v1.9.1 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Compiling quote v1.0.10 [INFO] [stderr] Checking plotters v0.3.1 [INFO] [stderr] Checking rayon v1.5.1 [INFO] [stderr] Checking bstr v0.2.17 [INFO] [stderr] Checking serde_cbor v0.11.2 [INFO] [stderr] Checking csv v1.1.6 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking criterion v0.3.5 [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> tests/default_params_hex.rs:3:22 [INFO] [stdout] | [INFO] [stdout] 3 | const TEST_CASES: [(&'static str, &'static str); 8] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> tests/default_params_hex.rs:3:36 [INFO] [stdout] | [INFO] [stdout] 3 | const TEST_CASES: [(&'static str, &'static str); 8] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/bad_input.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | !Harsh::builder().alphabet("1234567890").build().is_ok(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Harsh::builder().alphabet("1234567890").build().is_err()` [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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/bad_input.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | / !Harsh::builder() [INFO] [stdout] 15 | | .alphabet("a cdefghijklmnopqrstuvwxyz") [INFO] [stdout] 16 | | .build() [INFO] [stdout] 17 | | .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] help: try [INFO] [stdout] | [INFO] [stdout] 14 ~ Harsh::builder() [INFO] [stdout] 15 + .alphabet("a cdefghijklmnopqrstuvwxyz") [INFO] [stdout] 16 ~ .build().is_err(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> tests/min_length.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | const NUMBERS: &'static [u64] = &[1, 2, 3]; [INFO] [stdout] | -^^^^^^^------ help: consider removing `'static`: `&[u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> tests/default_params.rs:3:22 [INFO] [stdout] | [INFO] [stdout] 3 | const TEST_CASES: [(&'static str, &'static [u64]); 14] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> tests/default_params.rs:3:36 [INFO] [stdout] | [INFO] [stdout] 3 | const TEST_CASES: [(&'static str, &'static [u64]); 14] = [ [INFO] [stdout] | -^^^^^^^------ help: consider removing `'static`: `&[u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> tests/custom_params.rs:3:22 [INFO] [stdout] | [INFO] [stdout] 3 | const TEST_CASES: [(&'static str, &'static [u64]); 14] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> tests/custom_params.rs:3:36 [INFO] [stdout] | [INFO] [stdout] 3 | const TEST_CASES: [(&'static str, &'static [u64]); 14] = [ [INFO] [stdout] | -^^^^^^^------ help: consider removing `'static`: `&[u64]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc quote line without `>` marker [INFO] [stdout] --> src/lib.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | //! Regardless of the quality of your salt, this algorithm is fairly easy to [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this not intended to be a quote at all, escape it with `\>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: add markers to start of line [INFO] [stdout] | [INFO] [stdout] 12 | //! > Regardless of the quality of your salt, this algorithm is fairly easy to [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc quote line without `>` marker [INFO] [stdout] --> src/lib.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | //! crack. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this not intended to be a quote at all, escape it with `\>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: add markers to start of line [INFO] [stdout] | [INFO] [stdout] 13 | //! > crack. [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> src/builder.rs:111:30 [INFO] [stdout] | [INFO] [stdout] 111 | let salt = self.salt.unwrap_or_else(Vec::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> tests/custom_params_hex.rs:3:22 [INFO] [stdout] | [INFO] [stdout] 3 | const TEST_CASES: [(&'static str, &'static str); 8] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> tests/custom_params_hex.rs:3:36 [INFO] [stdout] | [INFO] [stdout] 3 | const TEST_CASES: [(&'static str, &'static str); 8] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `Iterator::fold` on a type that implements `Try` [INFO] [stdout] --> src/harsh.rs:285:30 [INFO] [stdout] | [INFO] [stdout] 285 | input.iter().enumerate().fold(Some(0), |a, (idx, &value)| { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 286 | | let pos = alphabet.iter().position(|&item| item == value)? as u64; [INFO] [stdout] 287 | | let b = (alphabet.len() as u64).checked_pow((input.len() - idx - 1) as u32)?; [INFO] [stdout] 288 | | let c = pos.checked_mul(b)?; [INFO] [stdout] 289 | | a.map(|a| a + c) [INFO] [stdout] 290 | | }) [INFO] [stdout] | |______^ help: use `try_fold` instead: `try_fold(0, |a, (idx, &value)| ...)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_try_fold [INFO] [stdout] = note: `#[warn(clippy::manual_try_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.67s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.3.5 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "1c867dc4f9a71e83a99b2dbf756e1974bb07aba6fc1d3683b38e7a46ae4c39e6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1c867dc4f9a71e83a99b2dbf756e1974bb07aba6fc1d3683b38e7a46ae4c39e6", kill_on_drop: false }` [INFO] [stdout] 1c867dc4f9a71e83a99b2dbf756e1974bb07aba6fc1d3683b38e7a46ae4c39e6