[INFO] fetching crate pkcs11 0.5.0... [INFO] linting pkcs11-0.5.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate pkcs11 0.5.0 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate pkcs11 0.5.0 [INFO] finished tweaking crates.io crate pkcs11 0.5.0 [INFO] tweaked toml for crates.io crate pkcs11 0.5.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate pkcs11 0.5.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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 20 packages to latest compatible versions [INFO] [stderr] Adding hex v0.3.2 (available: v0.4.3) [INFO] [stderr] Adding libloading v0.5.2 (available: v0.9.0) [INFO] [stderr] Adding num-bigint v0.2.6 (available: v0.4.6) [INFO] [stderr] Adding num-traits v0.1.43 (available: v0.2.19) [INFO] [stderr] Adding serial_test v0.1.0 (available: v3.4.0) [INFO] [stderr] Adding serial_test_derive v0.1.0 (available: v3.4.0) [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] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] warning: only one of `license` or `license-file` is necessary [INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression. [INFO] [stderr] `license-file` should be used if the package uses a non-standard license. [INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information. [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded serial_test v0.1.0 [INFO] [stderr] Downloaded serial_test_derive v0.1.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] e1c4c52292a000ff0fe687587fac6090a7eb93cf447a01abf375cda76914c5b7 [INFO] running `Command { std: "docker" "start" "-a" "e1c4c52292a000ff0fe687587fac6090a7eb93cf447a01abf375cda76914c5b7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e1c4c52292a000ff0fe687587fac6090a7eb93cf447a01abf375cda76914c5b7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e1c4c52292a000ff0fe687587fac6090a7eb93cf447a01abf375cda76914c5b7", kill_on_drop: false }` [INFO] [stdout] e1c4c52292a000ff0fe687587fac6090a7eb93cf447a01abf375cda76914c5b7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 16d55a217c5bbce4b8138773a0f48b94129be27fc2eac6e4d0bdbe3b2cb6ed8f [INFO] running `Command { std: "docker" "start" "-a" "16d55a217c5bbce4b8138773a0f48b94129be27fc2eac6e4d0bdbe3b2cb6ed8f", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] warning: only one of `license` or `license-file` is necessary [INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression. [INFO] [stderr] `license-file` should be used if the package uses a non-standard license. [INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information. [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Checking serial_test v0.1.0 [INFO] [stderr] Compiling libloading v0.5.2 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking num-traits v0.1.43 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Checking pkcs11 v0.5.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/types.rs:675:50 [INFO] [stdout] | [INFO] [stdout] 675 | pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000211); [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] 675 - pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000211); [INFO] [stdout] 675 + pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000211; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/types.rs:676:52 [INFO] [stdout] | [INFO] [stdout] 676 | pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000212); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 676 - pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000212); [INFO] [stdout] 676 + pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000212; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/types.rs:677:52 [INFO] [stdout] | [INFO] [stdout] 677 | pub const CKA_DERIVE_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000213); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 677 - pub const CKA_DERIVE_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000213); [INFO] [stdout] 677 + pub const CKA_DERIVE_TEMPLATE: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000213; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/types.rs:716:55 [INFO] [stdout] | [INFO] [stdout] 716 | pub const CKA_ALLOWED_MECHANISMS: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000600); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 716 - pub const CKA_ALLOWED_MECHANISMS: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000600); [INFO] [stdout] 716 + pub const CKA_ALLOWED_MECHANISMS: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000600; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/lib.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 44 | fn from(T) -> Self; [INFO] [stdout] | ^ help: try naming the parameter or explicitly ignoring it: `_: T` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `lib` and `version` are never read [INFO] [stdout] --> src/lib.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 91 | pub struct Ctx { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 92 | lib: libloading::Library, [INFO] [stdout] | ^^^ [INFO] [stdout] 93 | _is_initialized: bool, [INFO] [stdout] 94 | version: CK_VERSION, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ctx` 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: this item has comments with 4 forward slashes (`////`). These look like doc comments, but they aren't [INFO] [stdout] --> src/types.rs:53:1 [INFO] [stdout] | [INFO] [stdout] 53 | / //// an unsigned 8-bit value [INFO] [stdout] 54 | | pub type CK_BYTE = u8; [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#four_forward_slashes [INFO] [stdout] = note: `#[warn(clippy::four_forward_slashes)]` on by default [INFO] [stdout] help: make this a doc comment by removing one `/` [INFO] [stdout] | [INFO] [stdout] 53 - //// an unsigned 8-bit value [INFO] [stdout] 54 - pub type CK_BYTE = u8; [INFO] [stdout] 53 + /// an unsigned 8-bit value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used a field initializer for a tuple struct [INFO] [stdout] --> src/types.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | Self { 0: [32; 16] } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use tuple initialization: `Self([32; 16])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#init_numbered_fields [INFO] [stdout] = note: `#[warn(clippy::init_numbered_fields)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used a field initializer for a tuple struct [INFO] [stdout] --> src/types.rs:156:13 [INFO] [stdout] | [INFO] [stdout] 156 | Self { 0: [32; 16] } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use tuple initialization: `Self([32; 16])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#init_numbered_fields [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used a field initializer for a tuple struct [INFO] [stdout] --> src/types.rs:185:13 [INFO] [stdout] | [INFO] [stdout] 185 | Self { 0: [32; 32] } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use tuple initialization: `Self([32; 32])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#init_numbered_fields [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used a field initializer for a tuple struct [INFO] [stdout] --> src/types.rs:214:13 [INFO] [stdout] | [INFO] [stdout] 214 | Self { 0: [32; 64] } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use tuple initialization: `Self([32; 64])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#init_numbered_fields [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lib.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | / match b { [INFO] [stdout] 60 | | 0 => false, [INFO] [stdout] 61 | | _ => true, [INFO] [stdout] 62 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 59 - match b { [INFO] [stdout] 60 - 0 => false, [INFO] [stdout] 61 - _ => true, [INFO] [stdout] 62 - } [INFO] [stdout] 59 + !matches!(b, 0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a, 'b [INFO] [stdout] --> src/lib.rs:549:23 [INFO] [stdout] | [INFO] [stdout] 549 | pub fn init_token<'a, 'b>( [INFO] [stdout] | ^^ ^^ [INFO] [stdout] ... [INFO] [stdout] 552 | pin: Option<&'a str>, [INFO] [stdout] | ^^ [INFO] [stdout] 553 | label: &'b str, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 549 ~ pub fn init_token( [INFO] [stdout] 550 | &self, [INFO] [stdout] 551 | slot_id: CK_SLOT_ID, [INFO] [stdout] 552 ~ pin: Option<&str>, [INFO] [stdout] 553 ~ label: &str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/lib.rs:585:21 [INFO] [stdout] | [INFO] [stdout] 585 | pub fn init_pin<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 588 | pin: Option<&'a str>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 585 ~ pub fn init_pin( [INFO] [stdout] 586 | &self, [INFO] [stdout] 587 | session: CK_SESSION_HANDLE, [INFO] [stdout] 588 ~ pin: Option<&str>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a, 'b [INFO] [stdout] --> src/lib.rs:614:20 [INFO] [stdout] | [INFO] [stdout] 614 | pub fn set_pin<'a, 'b>( [INFO] [stdout] | ^^ ^^ [INFO] [stdout] ... [INFO] [stdout] 617 | old_pin: Option<&'a str>, [INFO] [stdout] | ^^ [INFO] [stdout] 618 | new_pin: Option<&'b str>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 614 ~ pub fn set_pin( [INFO] [stdout] 615 | &self, [INFO] [stdout] 616 | session: CK_SESSION_HANDLE, [INFO] [stdout] 617 ~ old_pin: Option<&str>, [INFO] [stdout] 618 ~ new_pin: Option<&str>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/lib.rs:740:18 [INFO] [stdout] | [INFO] [stdout] 740 | pub fn login<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 744 | pin: Option<&'a str>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 740 ~ pub fn login( [INFO] [stdout] 741 | &self, [INFO] [stdout] 742 | session: CK_SESSION_HANDLE, [INFO] [stdout] 743 | user_type: CK_USER_TYPE, [INFO] [stdout] 744 ~ pin: Option<&str>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling serial_test_derive v0.1.0 [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/types.rs:675:50 [INFO] [stdout] | [INFO] [stdout] 675 | pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000211); [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] 675 - pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000211); [INFO] [stdout] 675 + pub const CKA_WRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000211; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/types.rs:676:52 [INFO] [stdout] | [INFO] [stdout] 676 | pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000212); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 676 - pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000212); [INFO] [stdout] 676 + pub const CKA_UNWRAP_TEMPLATE: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000212; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/types.rs:677:52 [INFO] [stdout] | [INFO] [stdout] 677 | pub const CKA_DERIVE_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000213); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 677 - pub const CKA_DERIVE_TEMPLATE: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000213); [INFO] [stdout] 677 + pub const CKA_DERIVE_TEMPLATE: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000213; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/types.rs:716:55 [INFO] [stdout] | [INFO] [stdout] 716 | pub const CKA_ALLOWED_MECHANISMS: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000600); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 716 - pub const CKA_ALLOWED_MECHANISMS: CK_ATTRIBUTE_TYPE = (CKF_ARRAY_ATTRIBUTE | 0x00000600); [INFO] [stdout] 716 + pub const CKA_ALLOWED_MECHANISMS: CK_ATTRIBUTE_TYPE = CKF_ARRAY_ATTRIBUTE | 0x00000600; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/lib.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 44 | fn from(T) -> Self; [INFO] [stdout] | ^ help: try naming the parameter or explicitly ignoring it: `_: T` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `lib` and `version` are never read [INFO] [stdout] --> src/lib.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 91 | pub struct Ctx { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 92 | lib: libloading::Library, [INFO] [stdout] | ^^^ [INFO] [stdout] 93 | _is_initialized: bool, [INFO] [stdout] 94 | version: CK_VERSION, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ctx` 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: used `unwrap()` on `Some` value [INFO] [stdout] --> src/tests.rs:302:13 [INFO] [stdout] | [INFO] [stdout] 302 | pin.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the `Some` and `unwrap()` [INFO] [stdout] --> src/tests.rs:293:15 [INFO] [stdout] | [INFO] [stdout] 293 | let pin = Some("1234"); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_literal_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_literal_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on `Some` value [INFO] [stdout] --> src/tests.rs:309:13 [INFO] [stdout] | [INFO] [stdout] 309 | pin.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the `Some` and `unwrap()` [INFO] [stdout] --> src/tests.rs:293:15 [INFO] [stdout] | [INFO] [stdout] 293 | let pin = Some("1234"); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_literal_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on `Some` value [INFO] [stdout] --> src/tests.rs:333:13 [INFO] [stdout] | [INFO] [stdout] 333 | pin.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the `Some` and `unwrap()` [INFO] [stdout] --> src/tests.rs:319:15 [INFO] [stdout] | [INFO] [stdout] 319 | let pin = Some("1234"); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_literal_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on `Some` value [INFO] [stdout] --> src/tests.rs:360:13 [INFO] [stdout] | [INFO] [stdout] 360 | pin.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the `Some` and `unwrap()` [INFO] [stdout] --> src/tests.rs:345:15 [INFO] [stdout] | [INFO] [stdout] 345 | let pin = Some("1234"); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_literal_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on `Some` value [INFO] [stdout] --> src/tests.rs:361:13 [INFO] [stdout] | [INFO] [stdout] 361 | new_pin.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the `Some` and `unwrap()` [INFO] [stdout] --> src/tests.rs:346:19 [INFO] [stdout] | [INFO] [stdout] 346 | let new_pin = Some("1234"); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_literal_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on `Some` value [INFO] [stdout] --> src/tests.rs:480:13 [INFO] [stdout] | [INFO] [stdout] 480 | pin.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the `Some` and `unwrap()` [INFO] [stdout] --> src/tests.rs:467:15 [INFO] [stdout] | [INFO] [stdout] 467 | let pin = Some("1234"); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_literal_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests.rs:519:5 [INFO] [stdout] | [INFO] [stdout] 519 | assert_eq!(false, ret, "attr.get_bool() should have been false"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 519 - assert_eq!(false, ret, "attr.get_bool() should have been false"); [INFO] [stdout] 519 + assert!(!ret, "attr.get_bool() should have been false"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests.rs:526:5 [INFO] [stdout] | [INFO] [stdout] 526 | assert_eq!(true, ret, "attr.get_bool() should have been true"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 526 - assert_eq!(true, ret, "attr.get_bool() should have been true"); [INFO] [stdout] 526 + assert!(ret, "attr.get_bool() should have been true"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tests.rs:772:16 [INFO] [stdout] | [INFO] [stdout] 772 | if !res.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `res.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] --> src/tests.rs:794:12 [INFO] [stdout] | [INFO] [stdout] 794 | if !res.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `res.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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tests.rs:791:31 [INFO] [stdout] | [INFO] [stdout] 791 | template[3].set_bytes(&value.as_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `value.as_slice()` [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: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests.rs:806:9 [INFO] [stdout] | [INFO] [stdout] 806 | assert_eq!(true, template[1].get_bool().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 806 - assert_eq!(true, template[1].get_bool().unwrap()); [INFO] [stdout] 806 + assert!(template[1].get_bool().unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tests.rs:835:70 [INFO] [stdout] | [INFO] [stdout] 835 | let mut template2 = vec![CK_ATTRIBUTE::new(CKA_LABEL).with_bytes(&str.as_slice())]; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `str.as_slice()` [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: redundant redefinition of a binding `privLabel` [INFO] [stdout] --> src/tests.rs:1193:5 [INFO] [stdout] | [INFO] [stdout] 1193 | let privLabel = privLabel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `privLabel` is initially defined here [INFO] [stdout] --> src/tests.rs:1180:5 [INFO] [stdout] | [INFO] [stdout] 1180 | privLabel: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] = note: `#[warn(clippy::redundant_locals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `pubLabel` [INFO] [stdout] --> src/tests.rs:1219:5 [INFO] [stdout] | [INFO] [stdout] 1219 | let pubLabel = pubLabel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `pubLabel` is initially defined here [INFO] [stdout] --> src/tests.rs:1179:5 [INFO] [stdout] | [INFO] [stdout] 1179 | pubLabel: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `privLabel` [INFO] [stdout] --> src/tests.rs:1268:5 [INFO] [stdout] | [INFO] [stdout] 1268 | let privLabel = privLabel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `privLabel` is initially defined here [INFO] [stdout] --> src/tests.rs:1252:5 [INFO] [stdout] | [INFO] [stdout] 1252 | privLabel: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `pubLabel` [INFO] [stdout] --> src/tests.rs:1300:5 [INFO] [stdout] | [INFO] [stdout] 1300 | let pubLabel = pubLabel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `pubLabel` is initially defined here [INFO] [stdout] --> src/tests.rs:1251:5 [INFO] [stdout] | [INFO] [stdout] 1251 | pubLabel: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tests.rs:1321:48 [INFO] [stdout] | [INFO] [stdout] 1321 | CK_ATTRIBUTE::new(CKA_BASE).with_bytes(&base.as_slice()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `base.as_slice()` [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/tests.rs:1322:49 [INFO] [stdout] | [INFO] [stdout] 1322 | CK_ATTRIBUTE::new(CKA_PRIME).with_bytes(&prime.as_slice()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `prime.as_slice()` [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/tests.rs:2908:27 [INFO] [stdout] | [INFO] [stdout] 2908 | template[0].set_bytes(&value.as_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `value.as_slice()` [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/tests.rs:2916:27 [INFO] [stdout] | [INFO] [stdout] 2916 | template[0].set_bytes(&value.as_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `value.as_slice()` [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/tests.rs:3005:27 [INFO] [stdout] | [INFO] [stdout] 3005 | template[0].set_bytes(&value.as_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `value.as_slice()` [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/tests.rs:3013:27 [INFO] [stdout] | [INFO] [stdout] 3013 | template[0].set_bytes(&value.as_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `value.as_slice()` [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/tests.rs:3144:12 [INFO] [stdout] | [INFO] [stdout] 3144 | if !res.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `res.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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tests.rs:3139:31 [INFO] [stdout] | [INFO] [stdout] 3139 | template[1].set_bytes(&public_exponent.as_slice()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `public_exponent.as_slice()` [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 item has comments with 4 forward slashes (`////`). These look like doc comments, but they aren't [INFO] [stdout] --> src/types.rs:53:1 [INFO] [stdout] | [INFO] [stdout] 53 | / //// an unsigned 8-bit value [INFO] [stdout] 54 | | pub type CK_BYTE = u8; [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#four_forward_slashes [INFO] [stdout] = note: `#[warn(clippy::four_forward_slashes)]` on by default [INFO] [stdout] help: make this a doc comment by removing one `/` [INFO] [stdout] | [INFO] [stdout] 53 - //// an unsigned 8-bit value [INFO] [stdout] 54 - pub type CK_BYTE = u8; [INFO] [stdout] 53 + /// an unsigned 8-bit value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used a field initializer for a tuple struct [INFO] [stdout] --> src/types.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | Self { 0: [32; 16] } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use tuple initialization: `Self([32; 16])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#init_numbered_fields [INFO] [stdout] = note: `#[warn(clippy::init_numbered_fields)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used a field initializer for a tuple struct [INFO] [stdout] --> src/types.rs:156:13 [INFO] [stdout] | [INFO] [stdout] 156 | Self { 0: [32; 16] } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use tuple initialization: `Self([32; 16])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#init_numbered_fields [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used a field initializer for a tuple struct [INFO] [stdout] --> src/types.rs:185:13 [INFO] [stdout] | [INFO] [stdout] 185 | Self { 0: [32; 32] } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use tuple initialization: `Self([32; 32])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#init_numbered_fields [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used a field initializer for a tuple struct [INFO] [stdout] --> src/types.rs:214:13 [INFO] [stdout] | [INFO] [stdout] 214 | Self { 0: [32; 64] } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use tuple initialization: `Self([32; 64])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#init_numbered_fields [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lib.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | / match b { [INFO] [stdout] 60 | | 0 => false, [INFO] [stdout] 61 | | _ => true, [INFO] [stdout] 62 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 59 - match b { [INFO] [stdout] 60 - 0 => false, [INFO] [stdout] 61 - _ => true, [INFO] [stdout] 62 - } [INFO] [stdout] 59 + !matches!(b, 0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a, 'b [INFO] [stdout] --> src/lib.rs:549:23 [INFO] [stdout] | [INFO] [stdout] 549 | pub fn init_token<'a, 'b>( [INFO] [stdout] | ^^ ^^ [INFO] [stdout] ... [INFO] [stdout] 552 | pin: Option<&'a str>, [INFO] [stdout] | ^^ [INFO] [stdout] 553 | label: &'b str, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 549 ~ pub fn init_token( [INFO] [stdout] 550 | &self, [INFO] [stdout] 551 | slot_id: CK_SLOT_ID, [INFO] [stdout] 552 ~ pin: Option<&str>, [INFO] [stdout] 553 ~ label: &str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/lib.rs:585:21 [INFO] [stdout] | [INFO] [stdout] 585 | pub fn init_pin<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 588 | pin: Option<&'a str>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 585 ~ pub fn init_pin( [INFO] [stdout] 586 | &self, [INFO] [stdout] 587 | session: CK_SESSION_HANDLE, [INFO] [stdout] 588 ~ pin: Option<&str>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a, 'b [INFO] [stdout] --> src/lib.rs:614:20 [INFO] [stdout] | [INFO] [stdout] 614 | pub fn set_pin<'a, 'b>( [INFO] [stdout] | ^^ ^^ [INFO] [stdout] ... [INFO] [stdout] 617 | old_pin: Option<&'a str>, [INFO] [stdout] | ^^ [INFO] [stdout] 618 | new_pin: Option<&'b str>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 614 ~ pub fn set_pin( [INFO] [stdout] 615 | &self, [INFO] [stdout] 616 | session: CK_SESSION_HANDLE, [INFO] [stdout] 617 ~ old_pin: Option<&str>, [INFO] [stdout] 618 ~ new_pin: Option<&str>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/lib.rs:740:18 [INFO] [stdout] | [INFO] [stdout] 740 | pub fn login<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 744 | pin: Option<&'a str>, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 740 ~ pub fn login( [INFO] [stdout] 741 | &self, [INFO] [stdout] 742 | session: CK_SESSION_HANDLE, [INFO] [stdout] 743 | user_type: CK_USER_TYPE, [INFO] [stdout] 744 ~ pin: Option<&str>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.19s [INFO] running `Command { std: "docker" "inspect" "16d55a217c5bbce4b8138773a0f48b94129be27fc2eac6e4d0bdbe3b2cb6ed8f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "16d55a217c5bbce4b8138773a0f48b94129be27fc2eac6e4d0bdbe3b2cb6ed8f", kill_on_drop: false }` [INFO] [stdout] 16d55a217c5bbce4b8138773a0f48b94129be27fc2eac6e4d0bdbe3b2cb6ed8f