[INFO] fetching crate postgres-notify 0.3.8... [INFO] linting postgres-notify-0.3.8 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate postgres-notify 0.3.8 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate postgres-notify 0.3.8 [INFO] finished tweaking crates.io crate postgres-notify 0.3.8 [INFO] tweaked toml for crates.io crate postgres-notify 0.3.8 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate postgres-notify 0.3.8 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 postgres-notify 0.3.8 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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded docker_credential v1.3.2 [INFO] [stderr] Downloaded insta v1.46.0 [INFO] [stderr] Downloaded bollard-buildkit-proto v0.6.1 [INFO] [stderr] Downloaded bollard-stubs v1.48.3-rc.28.0.4 [INFO] [stderr] Downloaded testcontainers v0.25.0 [INFO] [stderr] Downloaded zerocopy-derive v0.8.32 [INFO] [stderr] Downloaded bollard v0.19.1 [INFO] [stderr] Downloaded testcontainers-modules v0.13.0 [INFO] [stderr] Downloaded zerocopy v0.8.32 [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] a39bb45d6464401ada53e3a8fae5ad81bd5544270199fd8e5c9a775ec4e37ccf [INFO] running `Command { std: "docker" "start" "-a" "a39bb45d6464401ada53e3a8fae5ad81bd5544270199fd8e5c9a775ec4e37ccf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a39bb45d6464401ada53e3a8fae5ad81bd5544270199fd8e5c9a775ec4e37ccf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a39bb45d6464401ada53e3a8fae5ad81bd5544270199fd8e5c9a775ec4e37ccf", kill_on_drop: false }` [INFO] [stdout] a39bb45d6464401ada53e3a8fae5ad81bd5544270199fd8e5c9a775ec4e37ccf [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] d68d826727cc0f16e201e313191c3d886ca0363c86dc21301eccae96cf62679a [INFO] running `Command { std: "docker" "start" "-a" "d68d826727cc0f16e201e313191c3d886ca0363c86dc21301eccae96cf62679a", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Compiling zerocopy v0.8.32 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Checking axum-core v0.5.6 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking webpki-roots v1.0.5 [INFO] [stderr] Checking ring v0.17.14 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling bollard-buildkit-proto v0.6.1 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking xattr v1.6.1 [INFO] [stderr] Checking phf_shared v0.12.1 [INFO] [stderr] Checking rustls-pemfile v2.2.0 [INFO] [stderr] Checking filetime v0.2.26 [INFO] [stderr] Compiling chrono-tz v0.10.4 [INFO] [stderr] Checking phf v0.12.1 [INFO] [stderr] Checking etcetera v0.10.0 [INFO] [stderr] Checking tempfile v3.24.0 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking rustls-webpki v0.103.8 [INFO] [stderr] Checking num v0.4.3 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking similar v2.7.0 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking postgres-protocol v0.6.9 [INFO] [stderr] Checking ulid v1.2.1 [INFO] [stderr] Checking postgres-types v0.2.11 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.21.3 [INFO] [stderr] Compiling pest_generator v2.8.5 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Compiling prost-derive v0.13.5 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling structmeta-derive v0.3.0 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Compiling structmeta v0.3.0 [INFO] [stderr] Compiling darling_macro v0.21.3 [INFO] [stderr] Checking prost v0.13.5 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling darling v0.21.3 [INFO] [stderr] Compiling serde_with_macros v3.16.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking prost-types v0.13.5 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Compiling parse-display-derive v0.9.1 [INFO] [stderr] Compiling pest_derive v2.8.5 [INFO] [stderr] Checking serde_with v3.16.1 [INFO] [stderr] Checking thiserror v2.0.17 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking parse-display v0.9.1 [INFO] [stderr] Checking chrono v0.4.42 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking docker_credential v1.3.2 [INFO] [stderr] Checking insta v1.46.0 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tokio-stream v0.1.18 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking ureq v2.12.1 [INFO] [stderr] Checking tokio-tar v0.3.1 [INFO] [stderr] Checking h2 v0.4.13 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking tokio-postgres v0.7.15 [INFO] [stderr] Checking axum v0.8.8 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking hyper-util v0.1.19 [INFO] [stderr] Checking hyper-timeout v0.5.2 [INFO] [stderr] Checking hyperlocal v0.9.1 [INFO] [stderr] Checking hyper-rustls v0.27.7 [INFO] [stderr] Checking tonic v0.13.1 [INFO] [stderr] Checking postgres-notify v0.3.8 (/opt/rustwide/workdir) [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/inner.rs:19:33 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) async fn connect(config: &PGRobustClientConfig) -> PGResult [INFO] [stdout] | ^^^ [INFO] [stdout] 20 | where [INFO] [stdout] 21 | TLS: MakeTlsConnect + Clone, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] = note: `#[warn(clippy::multiple_bound_locations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> src/messages.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | / pub enum PGMessage { [INFO] [stdout] 27 | | Notify(PGNotifyMessage), [INFO] [stdout] | | ----------------------- the second-largest variant contains at least 64 bytes [INFO] [stdout] 28 | | Raise(PGRaiseMessage), [INFO] [stdout] | | --------------------- the largest variant contains at least 400 bytes [INFO] [stdout] 29 | | Reconnect { [INFO] [stdout] ... | [INFO] [stdout] 52 | | }, [INFO] [stdout] 53 | | } [INFO] [stdout] | |_^ the entire enum is at least 400 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 28 - Raise(PGRaiseMessage), [INFO] [stdout] 28 + Raise(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/inner.rs:60:44 [INFO] [stdout] | [INFO] [stdout] 60 | let channels: Vec<&str> = channels.into_iter().map(AsRef::as_ref).collect(); [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: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/inner.rs:86:44 [INFO] [stdout] | [INFO] [stdout] 86 | let channels: Vec<&str> = channels.into_iter().map(AsRef::as_ref).collect(); [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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:410:65 [INFO] [stdout] | [INFO] [stdout] 410 | (self.config.callback)(PGMessage::cancelled(!status.is_err())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `status.is_ok()` [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] [stderr] Checking bollard-stubs v1.48.3-rc.28.0.4 [INFO] [stderr] Checking bollard v0.19.1 [INFO] [stderr] Checking testcontainers v0.25.0 [INFO] [stderr] Checking testcontainers-modules v0.13.0 [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/inner.rs:19:33 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) async fn connect(config: &PGRobustClientConfig) -> PGResult [INFO] [stdout] | ^^^ [INFO] [stdout] 20 | where [INFO] [stdout] 21 | TLS: MakeTlsConnect + Clone, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] = note: `#[warn(clippy::multiple_bound_locations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> src/messages.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | / pub enum PGMessage { [INFO] [stdout] 27 | | Notify(PGNotifyMessage), [INFO] [stdout] | | ----------------------- the second-largest variant contains at least 64 bytes [INFO] [stdout] 28 | | Raise(PGRaiseMessage), [INFO] [stdout] | | --------------------- the largest variant contains at least 400 bytes [INFO] [stdout] 29 | | Reconnect { [INFO] [stdout] ... | [INFO] [stdout] 52 | | }, [INFO] [stdout] 53 | | } [INFO] [stdout] | |_^ the entire enum is at least 400 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 28 - Raise(PGRaiseMessage), [INFO] [stdout] 28 + Raise(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/inner.rs:60:44 [INFO] [stdout] | [INFO] [stdout] 60 | let channels: Vec<&str> = channels.into_iter().map(AsRef::as_ref).collect(); [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: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/inner.rs:86:44 [INFO] [stdout] | [INFO] [stdout] 86 | let channels: Vec<&str> = channels.into_iter().map(AsRef::as_ref).collect(); [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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:410:65 [INFO] [stdout] | [INFO] [stdout] 410 | (self.config.callback)(PGMessage::cancelled(!status.is_err())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `status.is_ok()` [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 can be `std::io::Error::other(_)` [INFO] [stdout] --> src/lib.rs:832:30 [INFO] [stdout] | [INFO] [stdout] 832 | let custom_err = std::io::Error::new(std::io::ErrorKind::Other, "custom error"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 832 - let custom_err = std::io::Error::new(std::io::ErrorKind::Other, "custom error"); [INFO] [stdout] 832 + let custom_err = std::io::Error::other("custom error"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/lib.rs:1125:17 [INFO] [stdout] | [INFO] [stdout] 1125 | assert!(matches!(result, Ok(_))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `result.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/lib.rs:1154:17 [INFO] [stdout] | [INFO] [stdout] 1154 | assert!(matches!(result, Ok(_))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `result.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 51s [INFO] running `Command { std: "docker" "inspect" "d68d826727cc0f16e201e313191c3d886ca0363c86dc21301eccae96cf62679a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d68d826727cc0f16e201e313191c3d886ca0363c86dc21301eccae96cf62679a", kill_on_drop: false }` [INFO] [stdout] d68d826727cc0f16e201e313191c3d886ca0363c86dc21301eccae96cf62679a