[INFO] cloning repository https://github.com/vandycknick/cw [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vandycknick/cw" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvandycknick%2Fcw", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvandycknick%2Fcw'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 810614f38eda6cec30b4a2a768f5d18f442bb591 [INFO] linting vandycknick/cw against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvandycknick%2Fcw" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/vandycknick/cw [INFO] finished tweaking git repo https://github.com/vandycknick/cw [INFO] tweaked toml for git repo https://github.com/vandycknick/cw written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/vandycknick/cw 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 git repo https://github.com/vandycknick/cw 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 tabwriter v1.4.1 [INFO] [stderr] Downloaded aws-smithy-query v0.60.8 [INFO] [stderr] Downloaded aws-smithy-observability v0.1.4 [INFO] [stderr] Downloaded aws-smithy-compression v0.0.5 [INFO] [stderr] Downloaded aws-smithy-json v0.61.6 [INFO] [stderr] Downloaded aws-smithy-eventstream v0.60.12 [INFO] [stderr] Downloaded aws-types v1.3.9 [INFO] [stderr] Downloaded aws-sdk-sso v1.86.0 [INFO] [stderr] Downloaded aws-sigv4 v1.3.5 [INFO] [stderr] Downloaded aws-sdk-ssooidc v1.88.0 [INFO] [stderr] Downloaded aws-smithy-runtime v1.9.3 [INFO] [stderr] Downloaded aws-config v1.8.8 [INFO] [stderr] Downloaded prettyplease v0.2.33 [INFO] [stderr] Downloaded aws-sdk-sts v1.88.0 [INFO] [stderr] Downloaded aws-smithy-http-client v1.1.3 [INFO] [stderr] Downloaded aws-runtime v1.5.12 [INFO] [stderr] Downloaded aws-smithy-async v1.2.6 [INFO] [stderr] Downloaded aws-smithy-runtime-api v1.9.1 [INFO] [stderr] Downloaded aws-smithy-types v1.3.3 [INFO] [stderr] Downloaded aws-credential-types v1.2.8 [INFO] [stderr] Downloaded aws-smithy-http v0.62.4 [INFO] [stderr] Downloaded aws-smithy-xml v0.60.11 [INFO] [stderr] Downloaded aws-sdk-cloudwatch v1.94.0 [INFO] [stderr] Downloaded aws-sdk-cloudwatchlogs v1.105.0 [INFO] [stderr] Downloaded aws-lc-sys v0.32.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] fb2008c3633f34742f34d6fc35c596ab659c8101203828d72f4b9d5fcced8af0 [INFO] running `Command { std: "docker" "start" "-a" "fb2008c3633f34742f34d6fc35c596ab659c8101203828d72f4b9d5fcced8af0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fb2008c3633f34742f34d6fc35c596ab659c8101203828d72f4b9d5fcced8af0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fb2008c3633f34742f34d6fc35c596ab659c8101203828d72f4b9d5fcced8af0", kill_on_drop: false }` [INFO] [stdout] fb2008c3633f34742f34d6fc35c596ab659c8101203828d72f4b9d5fcced8af0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] e4cfb137a19fa110d613c8bcddbdd13356ee190b646fc3bbc58057ce60cc4f1a [INFO] running `Command { std: "docker" "start" "-a" "e4cfb137a19fa110d613c8bcddbdd13356ee190b646fc3bbc58057ce60cc4f1a", kill_on_drop: false }` [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling syn v2.0.102 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking outref v0.5.2 [INFO] [stderr] Checking vsimd v0.8.0 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking hashbrown v0.15.4 [INFO] [stderr] Checking time v0.3.41 [INFO] [stderr] Compiling aws-lc-rs v1.14.1 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Compiling rustls v0.23.32 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Checking rustls-native-certs v0.6.3 [INFO] [stderr] Checking rustls-native-certs v0.8.1 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Compiling aws-types v1.3.9 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking fastrand v2.3.0 [INFO] [stderr] Compiling percent-encoding v2.3.1 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking uuid v1.18.1 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling iana-time-zone v0.1.63 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Checking regex-lite v0.1.6 [INFO] [stderr] Compiling crc v3.3.0 [INFO] [stderr] Checking indexmap v2.9.0 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Checking base64-simd v0.8.0 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling event-listener v5.4.0 [INFO] [stderr] Compiling jobserver v0.1.33 [INFO] [stderr] Compiling flume v0.11.1 [INFO] [stderr] Checking xmlparser v0.13.6 [INFO] [stderr] Checking urlencoding v2.1.3 [INFO] [stderr] Checking chrono v0.4.42 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Compiling cc v1.2.26 [INFO] [stderr] Checking aws-smithy-xml v0.60.11 [INFO] [stderr] Checking futures-intrusive v0.5.0 [INFO] [stderr] Checking crossbeam-queue v0.3.12 [INFO] [stderr] Compiling tokio v1.45.1 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Checking anstyle-query v1.1.3 [INFO] [stderr] Checking anstream v0.6.19 [INFO] [stderr] Checking rustix v1.1.2 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking is-terminal v0.4.16 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking indenter v0.3.3 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Checking tabwriter v1.4.1 [INFO] [stderr] Checking eyre v0.6.12 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking clap_builder v4.5.49 [INFO] [stderr] Checking yansi v1.0.1 [INFO] [stderr] Checking terminal_size v0.4.3 [INFO] [stderr] Compiling cmake v0.1.54 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling aws-lc-sys v0.32.1 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.29 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Compiling zerovec v0.11.2 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking clap v4.5.49 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking bytes-utils v0.1.4 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking aws-smithy-async v1.2.6 [INFO] [stderr] Checking tokio-rustls v0.24.1 [INFO] [stderr] Compiling sqlx-core v0.8.6 [INFO] [stderr] Checking aws-smithy-types v1.3.3 [INFO] [stderr] Checking h2 v0.4.12 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking aws-smithy-runtime-api v1.9.1 [INFO] [stderr] Checking aws-smithy-eventstream v0.60.12 [INFO] [stderr] Checking aws-smithy-json v0.61.6 [INFO] [stderr] Checking aws-smithy-query v0.60.8 [INFO] [stderr] Checking aws-credential-types v1.2.8 [INFO] [stderr] Checking aws-smithy-http v0.62.4 [INFO] [stderr] Checking aws-smithy-observability v0.1.4 [INFO] [stderr] Checking aws-smithy-compression v0.0.5 [INFO] [stderr] Checking aws-sigv4 v1.3.5 [INFO] [stderr] Checking sqlx-sqlite v0.8.6 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking hyper v1.7.0 [INFO] [stderr] Checking rustls-webpki v0.103.6 [INFO] [stderr] Checking hyper-util v0.1.17 [INFO] [stderr] Compiling sqlx-macros-core v0.8.6 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking hyper-rustls v0.24.2 [INFO] [stderr] Checking hyper-rustls v0.27.7 [INFO] [stderr] Compiling sqlx-macros v0.8.6 [INFO] [stderr] Checking aws-smithy-http-client v1.1.3 [INFO] [stderr] Checking sqlx v0.8.6 [INFO] [stderr] Checking aws-smithy-runtime v1.9.3 [INFO] [stderr] Checking aws-runtime v1.5.12 [INFO] [stderr] Checking aws-sdk-ssooidc v1.88.0 [INFO] [stderr] Checking aws-sdk-sts v1.88.0 [INFO] [stderr] Checking aws-sdk-sso v1.86.0 [INFO] [stderr] Checking aws-sdk-cloudwatchlogs v1.105.0 [INFO] [stderr] Checking aws-sdk-cloudwatch v1.94.0 [INFO] [stderr] Checking aws-config v1.8.8 [INFO] [stderr] Checking cw v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `command` [INFO] [stdout] --> src/commands/mod.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | use clap::{command, Parser, Subcommand}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `command` [INFO] [stdout] --> src/commands/mod.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | use clap::{command, Parser, Subcommand}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `command` [INFO] [stdout] --> src/commands/list.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | use clap::{command, Subcommand}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `command` [INFO] [stdout] --> src/commands/list.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | use clap::{command, Subcommand}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AwsClient` is never used [INFO] [stdout] --> src/aws.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | trait AwsClient { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DefaultAwsClient` is never constructed [INFO] [stdout] --> src/aws.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct DefaultAwsClient { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/aws.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl DefaultAwsClient { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] 25 | pub fn new(config: SdkConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AwsClientBuilder` is never constructed [INFO] [stdout] --> src/aws.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct AwsClientBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `use_profile_name`, `use_region`, and `build` are never used [INFO] [stdout] --> src/aws.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl AwsClientBuilder { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 53 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn use_profile_name(mut self, profile_name: Option) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn use_region(mut self, region: Option) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub async fn build(&self) -> eyre::Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/commands/mod.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fmt::Display, u8}; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u8::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/commands/list.rs:82:16 [INFO] [stdout] | [INFO] [stdout] 82 | if next_token == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `next_token.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/commands/list.rs:103:42 [INFO] [stdout] | [INFO] [stdout] 103 | let log_group = if let Some(g) = log_groups [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 104 | | .log_groups() [INFO] [stdout] 105 | | .iter() [INFO] [stdout] 106 | | .filter(|l| l.log_group_name() == Some(&group_name)) [INFO] [stdout] 107 | | .next() [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 103 ~ let log_group = if let Some(g) = log_groups [INFO] [stdout] 104 + .log_groups() [INFO] [stdout] 105 + .iter().find(|l| l.log_group_name() == Some(&group_name)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/commands/list.rs:141:17 [INFO] [stdout] | [INFO] [stdout] 141 | / s.last_event_timestamp() [INFO] [stdout] 142 | | .map_or(false, |t| DateTime::from_timestamp_millis(t) > retention) [INFO] [stdout] | |______________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 142 - .map_or(false, |t| DateTime::from_timestamp_millis(t) > retention) [INFO] [stdout] 142 + .is_some_and(|t| DateTime::from_timestamp_millis(t) > retention) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/commands/list.rs:151:16 [INFO] [stdout] | [INFO] [stdout] 151 | if next_token == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `next_token.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/commands/query.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | "", [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stdout] = note: `#[warn(clippy::write_literal)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 243 ~ "{}\t\t{}\t{}\t{}\t{}\t{}", [INFO] [stdout] 244 ~ item.query_id, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AwsClient` is never used [INFO] [stdout] --> src/aws.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | trait AwsClient { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DefaultAwsClient` is never constructed [INFO] [stdout] --> src/aws.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct DefaultAwsClient { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/aws.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl DefaultAwsClient { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] 25 | pub fn new(config: SdkConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AwsClientBuilder` is never constructed [INFO] [stdout] --> src/aws.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct AwsClientBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `use_profile_name`, `use_region`, and `build` are never used [INFO] [stdout] --> src/aws.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl AwsClientBuilder { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 53 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn use_profile_name(mut self, profile_name: Option) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn use_region(mut self, region: Option) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub async fn build(&self) -> eyre::Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/commands/tail.rs:389:5 [INFO] [stdout] | [INFO] [stdout] 389 | / async fn tail_log_producer( [INFO] [stdout] 390 | | client: Client, [INFO] [stdout] 391 | | sender: UnboundedSender, [INFO] [stdout] 392 | | start_time: i64, [INFO] [stdout] ... | [INFO] [stdout] 397 | | stream_name: Option, [INFO] [stdout] 398 | | ) -> eyre::Result<()> { [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/commands/tail.rs:441:16 [INFO] [stdout] | [INFO] [stdout] 441 | if next_token == None && !follow { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `next_token.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/commands/tail.rs:451:16 [INFO] [stdout] | [INFO] [stdout] 451 | if events.len() == 0 && follow { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `events.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/commands/mod.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fmt::Display, u8}; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u8::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/commands/list.rs:82:16 [INFO] [stdout] | [INFO] [stdout] 82 | if next_token == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `next_token.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/commands/list.rs:103:42 [INFO] [stdout] | [INFO] [stdout] 103 | let log_group = if let Some(g) = log_groups [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 104 | | .log_groups() [INFO] [stdout] 105 | | .iter() [INFO] [stdout] 106 | | .filter(|l| l.log_group_name() == Some(&group_name)) [INFO] [stdout] 107 | | .next() [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 103 ~ let log_group = if let Some(g) = log_groups [INFO] [stdout] 104 + .log_groups() [INFO] [stdout] 105 + .iter().find(|l| l.log_group_name() == Some(&group_name)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/commands/list.rs:141:17 [INFO] [stdout] | [INFO] [stdout] 141 | / s.last_event_timestamp() [INFO] [stdout] 142 | | .map_or(false, |t| DateTime::from_timestamp_millis(t) > retention) [INFO] [stdout] | |______________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 142 - .map_or(false, |t| DateTime::from_timestamp_millis(t) > retention) [INFO] [stdout] 142 + .is_some_and(|t| DateTime::from_timestamp_millis(t) > retention) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/commands/list.rs:151:16 [INFO] [stdout] | [INFO] [stdout] 151 | if next_token == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `next_token.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/db.rs:77:1 [INFO] [stdout] | [INFO] [stdout] 77 | / impl Default for QueryStatus { [INFO] [stdout] 78 | | fn default() -> Self { [INFO] [stdout] 79 | | Self::Scheduled [INFO] [stdout] 80 | | } [INFO] [stdout] 81 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 69 + #[derive(Default)] [INFO] [stdout] 70 | pub enum QueryStatus { [INFO] [stdout] 71 ~ #[default] [INFO] [stdout] 72 ~ Scheduled, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> src/editor.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | .create(true) [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] = note: `#[warn(clippy::suspicious_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `eprintln!` [INFO] [stdout] --> src/main.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | eprintln!(""); [INFO] [stdout] | ^^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/commands/query.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | "", [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_literal [INFO] [stdout] = note: `#[warn(clippy::write_literal)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 243 ~ "{}\t\t{}\t{}\t{}\t{}\t{}", [INFO] [stdout] 244 ~ item.query_id, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/commands/tail.rs:389:5 [INFO] [stdout] | [INFO] [stdout] 389 | / async fn tail_log_producer( [INFO] [stdout] 390 | | client: Client, [INFO] [stdout] 391 | | sender: UnboundedSender, [INFO] [stdout] 392 | | start_time: i64, [INFO] [stdout] ... | [INFO] [stdout] 397 | | stream_name: Option, [INFO] [stdout] 398 | | ) -> eyre::Result<()> { [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/commands/tail.rs:441:16 [INFO] [stdout] | [INFO] [stdout] 441 | if next_token == None && !follow { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `next_token.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/commands/tail.rs:451:16 [INFO] [stdout] | [INFO] [stdout] 451 | if events.len() == 0 && follow { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `events.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/db.rs:77:1 [INFO] [stdout] | [INFO] [stdout] 77 | / impl Default for QueryStatus { [INFO] [stdout] 78 | | fn default() -> Self { [INFO] [stdout] 79 | | Self::Scheduled [INFO] [stdout] 80 | | } [INFO] [stdout] 81 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 69 + #[derive(Default)] [INFO] [stdout] 70 | pub enum QueryStatus { [INFO] [stdout] 71 ~ #[default] [INFO] [stdout] 72 ~ Scheduled, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> src/editor.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | .create(true) [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] = note: `#[warn(clippy::suspicious_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `eprintln!` [INFO] [stdout] --> src/main.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | eprintln!(""); [INFO] [stdout] | ^^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 52s [INFO] running `Command { std: "docker" "inspect" "e4cfb137a19fa110d613c8bcddbdd13356ee190b646fc3bbc58057ce60cc4f1a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e4cfb137a19fa110d613c8bcddbdd13356ee190b646fc3bbc58057ce60cc4f1a", kill_on_drop: false }` [INFO] [stdout] e4cfb137a19fa110d613c8bcddbdd13356ee190b646fc3bbc58057ce60cc4f1a