[INFO] fetching crate gen-license 0.1.3... [INFO] linting gen-license-0.1.3 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate gen-license 0.1.3 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate gen-license 0.1.3 [INFO] finished tweaking crates.io crate gen-license 0.1.3 [INFO] tweaked toml for crates.io crate gen-license 0.1.3 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate gen-license 0.1.3 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 gen-license 0.1.3 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 zeroize v1.5.4 [INFO] [stderr] Downloaded quote v1.0.16 [INFO] [stderr] Downloaded cxxbridge-flags v1.0.68 [INFO] [stderr] Downloaded redox_syscall v0.2.11 [INFO] [stderr] Downloaded cxxbridge-macro v1.0.68 [INFO] [stderr] Downloaded cxx-build v1.0.68 [INFO] [stderr] Downloaded cxx v1.0.68 [INFO] [stderr] Downloaded syn v1.0.89 [INFO] [stderr] Downloaded rustls v0.20.4 [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] cd1d67390fc7d207dd8515133baac395026dd92856fb88866ad765dfa5bdb451 [INFO] running `Command { std: "docker" "start" "-a" "cd1d67390fc7d207dd8515133baac395026dd92856fb88866ad765dfa5bdb451", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cd1d67390fc7d207dd8515133baac395026dd92856fb88866ad765dfa5bdb451", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cd1d67390fc7d207dd8515133baac395026dd92856fb88866ad765dfa5bdb451", kill_on_drop: false }` [INFO] [stdout] cd1d67390fc7d207dd8515133baac395026dd92856fb88866ad765dfa5bdb451 [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] ebd71af1d08c9608e735b06b854c73da397e83f75dca1b21cac77c6f7bfc24ff [INFO] running `Command { std: "docker" "start" "-a" "ebd71af1d08c9608e735b06b854c73da397e83f75dca1b21cac77c6f7bfc24ff", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.139 [INFO] [stderr] Compiling cc v1.0.73 [INFO] [stderr] Compiling proc-macro2 v1.0.36 [INFO] [stderr] Compiling syn v1.0.89 [INFO] [stderr] Checking untrusted v0.7.1 [INFO] [stderr] Checking spin v0.5.2 [INFO] [stderr] Compiling serde_derive v1.0.136 [INFO] [stderr] Checking tinyvec v1.5.1 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling serde v1.0.136 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Checking unicode-bidi v0.3.7 [INFO] [stderr] Compiling rustls v0.20.4 [INFO] [stderr] Compiling serde_json v1.0.79 [INFO] [stderr] Checking thread_local v1.1.4 [INFO] [stderr] Checking unicode-width v0.1.9 [INFO] [stderr] Checking zeroize v1.5.4 [INFO] [stderr] Checking fuzzy-matcher v0.3.7 [INFO] [stderr] Checking chunked_transfer v1.4.0 [INFO] [stderr] Checking terminal_size v0.1.17 [INFO] [stderr] Compiling quote v1.0.16 [INFO] [stderr] Checking time v0.1.45 [INFO] [stderr] Checking tempfile v3.3.0 [INFO] [stderr] Checking unicode-normalization v0.1.19 [INFO] [stderr] Checking flate2 v1.0.22 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Checking iana-time-zone v0.1.53 [INFO] [stderr] Checking chrono v0.4.23 [INFO] [stderr] Checking regex v1.5.5 [INFO] [stderr] Checking idna v0.2.3 [INFO] [stderr] Checking console v0.15.0 [INFO] [stderr] Checking dialoguer v0.10.0 [INFO] [stderr] Checking url v2.2.2 [INFO] [stderr] Checking webpki v0.22.0 [INFO] [stderr] Checking sct v0.7.0 [INFO] [stderr] Checking webpki-roots v0.22.2 [INFO] [stderr] Checking ureq v2.4.0 [INFO] [stderr] Checking gen-license v0.1.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: fields `key`, `spdx_id`, and `node_id` are never read [INFO] [stdout] --> src/license.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct License { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 6 | pub key: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 7 | pub name: String, [INFO] [stdout] 8 | pub spdx_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 9 | pub url: String, [INFO] [stdout] 10 | pub node_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `License` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `key`, `name`, `description`, `permissions`, `conditions`, and `limitations` are never read [INFO] [stdout] --> src/license.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct LicenseContent { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 15 | pub key: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 16 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 17 | pub description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 18 | pub permissions: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 19 | pub conditions: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 20 | pub limitations: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LicenseContent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/helpers.rs:43:27 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn select(selections: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 43 - pub fn select(selections: &Vec) -> String { [INFO] [stdout] 43 + pub fn select(selections: &[String]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::option::Option` [INFO] [stdout] --> src/helpers.rs:66:18 [INFO] [stdout] | [INFO] [stdout] 66 | false => Option::from(None), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider removing `Option::from()`: `None` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/helpers.rs:121:24 [INFO] [stdout] | [INFO] [stdout] 121 | let result = match !fs::metadata(path).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(path).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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/license.rs:27:55 [INFO] [stdout] | [INFO] [stdout] 27 | let license: LicenseContent = match ureq::get(&url).call() { [INFO] [stdout] | ^^^^ help: change this to: `url` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/license.rs:56:47 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn get_license_from_name(&self, name: &String) -> LicenseContent { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 56 ~ pub fn get_license_from_name(&self, name: &str) -> LicenseContent { [INFO] [stdout] 57 | let lic = &self.license; [INFO] [stdout] ... [INFO] [stdout] 60 | .into_iter() [INFO] [stdout] 61 ~ .filter(|l| l.name == name.to_owned()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/license.rs:60:14 [INFO] [stdout] | [INFO] [stdout] 60 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `key`, `spdx_id`, and `node_id` are never read [INFO] [stdout] --> src/license.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct License { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 6 | pub key: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 7 | pub name: String, [INFO] [stdout] 8 | pub spdx_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 9 | pub url: String, [INFO] [stdout] 10 | pub node_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `License` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `key`, `name`, `description`, `permissions`, `conditions`, and `limitations` are never read [INFO] [stdout] --> src/license.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct LicenseContent { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 15 | pub key: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 16 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 17 | pub description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 18 | pub permissions: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 19 | pub conditions: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 20 | pub limitations: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LicenseContent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/helpers.rs:43:27 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn select(selections: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 43 - pub fn select(selections: &Vec) -> String { [INFO] [stdout] 43 + pub fn select(selections: &[String]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::option::Option` [INFO] [stdout] --> src/helpers.rs:66:18 [INFO] [stdout] | [INFO] [stdout] 66 | false => Option::from(None), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider removing `Option::from()`: `None` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/helpers.rs:121:24 [INFO] [stdout] | [INFO] [stdout] 121 | let result = match !fs::metadata(path).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(path).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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/license.rs:27:55 [INFO] [stdout] | [INFO] [stdout] 27 | let license: LicenseContent = match ureq::get(&url).call() { [INFO] [stdout] | ^^^^ help: change this to: `url` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/license.rs:56:47 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn get_license_from_name(&self, name: &String) -> LicenseContent { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 56 ~ pub fn get_license_from_name(&self, name: &str) -> LicenseContent { [INFO] [stdout] 57 | let lic = &self.license; [INFO] [stdout] ... [INFO] [stdout] 60 | .into_iter() [INFO] [stdout] 61 ~ .filter(|l| l.name == name.to_owned()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/license.rs:60:14 [INFO] [stdout] | [INFO] [stdout] 60 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.14s [INFO] running `Command { std: "docker" "inspect" "ebd71af1d08c9608e735b06b854c73da397e83f75dca1b21cac77c6f7bfc24ff", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ebd71af1d08c9608e735b06b854c73da397e83f75dca1b21cac77c6f7bfc24ff", kill_on_drop: false }` [INFO] [stdout] ebd71af1d08c9608e735b06b854c73da397e83f75dca1b21cac77c6f7bfc24ff