[INFO] fetching crate garage_model 2.1.0... [INFO] linting garage_model-2.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate garage_model 2.1.0 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate garage_model 2.1.0 [INFO] finished tweaking crates.io crate garage_model 2.1.0 [INFO] tweaked toml for crates.io crate garage_model 2.1.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate garage_model 2.1.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] crate crates.io crate garage_model 2.1.0 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] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded r2d2_sqlite v0.31.0 [INFO] [stderr] Downloaded synchronoise v1.0.1 [INFO] [stderr] Downloaded path-absolutize v3.1.1 [INFO] [stderr] Downloaded double-ended-peekable v0.1.0 [INFO] [stderr] Downloaded byteview v0.6.1 [INFO] [stderr] Downloaded crossbeam-skiplist v0.1.3 [INFO] [stderr] Downloaded fjall v2.11.2 [INFO] [stderr] Downloaded lsm-tree v2.10.3 [INFO] [stderr] Downloaded quick_cache v0.6.16 [INFO] [stderr] Downloaded value-log v1.9.0 [INFO] [stderr] Downloaded compare v0.0.6 [INFO] [stderr] Downloaded varint-rs v2.2.0 [INFO] [stderr] Downloaded guardian v1.3.0 [INFO] [stderr] Downloaded interval-heap v0.0.5 [INFO] [stderr] Downloaded heed v0.11.0 [INFO] [stderr] Downloaded std-semaphore v0.1.0 [INFO] [stderr] Downloaded heed-traits v0.8.0 [INFO] [stderr] Downloaded heed-types v0.8.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 606e75e44aee9bba3e140def0e95ea6357c9b5b9aac78ca748561aae4113e9cb [INFO] running `Command { std: "docker" "start" "-a" "606e75e44aee9bba3e140def0e95ea6357c9b5b9aac78ca748561aae4113e9cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "606e75e44aee9bba3e140def0e95ea6357c9b5b9aac78ca748561aae4113e9cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "606e75e44aee9bba3e140def0e95ea6357c9b5b9aac78ca748561aae4113e9cb", kill_on_drop: false }` [INFO] [stdout] 606e75e44aee9bba3e140def0e95ea6357c9b5b9aac78ca748561aae4113e9cb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 8d47cd483082efea3157a43be65b650175a60c05e051d35d0c904a5b9fbd5cc1 [INFO] running `Command { std: "docker" "start" "-a" "8d47cd483082efea3157a43be65b650175a60c05e051d35d0c904a5b9fbd5cc1", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Compiling zerocopy v0.8.23 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking hashbrown v0.15.2 [INFO] [stderr] Checking smallvec v1.14.0 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling libsqlite3-sys v0.35.0 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Checking log v0.4.26 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling err-derive v0.3.1 [INFO] [stderr] Checking bitflags v2.9.0 [INFO] [stderr] Checking once_cell v1.21.1 [INFO] [stderr] Checking fallible-iterator v0.3.0 [INFO] [stderr] Checking fallible-streaming-iterator v0.1.9 [INFO] [stderr] Checking bytemuck v1.22.0 [INFO] [stderr] Checking heed-traits v0.8.0 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Checking synchronoise v1.0.1 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Checking blake2 v0.10.6 [INFO] [stderr] Checking crossbeam-channel v0.5.14 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Checking arc-swap v1.7.1 [INFO] [stderr] Checking no-std-net v0.6.0 [INFO] [stderr] Compiling zstd-safe v7.2.3 [INFO] [stderr] Checking hexdump v0.1.2 [INFO] [stderr] Checking hashlink v0.10.0 [INFO] [stderr] Checking indexmap v2.8.0 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Checking pnet_base v0.34.0 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Checking bytesize v1.3.2 [INFO] [stderr] Checking format_table v0.1.1 [INFO] [stderr] Checking base64ct v1.7.3 [INFO] [stderr] Checking rusqlite v0.37.0 [INFO] [stderr] Compiling garage_util v2.1.0 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Compiling cc v1.2.16 [INFO] [stderr] Checking rmp v0.8.14 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking socket2 v0.5.8 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking page_size v0.4.2 [INFO] [stderr] Checking pnet_sys v0.34.0 [INFO] [stderr] Checking gethostname v0.4.3 [INFO] [stderr] Checking num v0.2.1 [INFO] [stderr] Checking parse_duration v2.1.1 [INFO] [stderr] Checking dashmap v4.0.2 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling libsodium-sys v0.2.7 [INFO] [stderr] Compiling lmdb-rkv-sys v0.11.2 [INFO] [stderr] Compiling zstd-sys v2.0.14+zstd.1.5.7 [INFO] [stderr] Checking scheduled-thread-pool v0.2.7 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking password-hash v0.5.0 [INFO] [stderr] Checking argon2 v0.5.3 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking r2d2 v0.8.10 [INFO] [stderr] Checking uuid v1.4.1 [INFO] [stderr] Checking r2d2_sqlite v0.31.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Checking tokio v1.44.1 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking tokio-util v0.7.14 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking async-compression v0.4.21 [INFO] [stderr] Checking opentelemetry v0.17.0 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking toml_datetime v0.6.8 [INFO] [stderr] Checking serde_spanned v0.6.8 [INFO] [stderr] Checking rmp-serde v1.3.0 [INFO] [stderr] Checking chrono v0.4.40 [INFO] [stderr] Checking ipnetwork v0.20.0 [INFO] [stderr] Checking serde_bytes v0.11.17 [INFO] [stderr] Checking toml_edit v0.22.24 [INFO] [stderr] Checking pnet_datalink v0.34.0 [INFO] [stderr] Checking heed-types v0.8.0 [INFO] [stderr] Checking heed v0.11.0 [INFO] [stderr] Checking garage_db v2.1.0 [INFO] [stderr] Checking toml v0.8.20 [INFO] [stderr] Checking kuska-sodiumoxide v0.2.5-0 [INFO] [stderr] Checking kuska-handshake v0.2.0 [INFO] [stderr] Checking garage_net v2.1.0 [INFO] [stderr] Checking garage_rpc v2.1.0 [INFO] [stderr] Checking garage_table v2.1.0 [INFO] [stderr] Checking garage_block v2.1.0 [INFO] [stderr] Checking garage_model v2.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> key_table.rs:162:44 [INFO] [stdout] | [INFO] [stdout] 162 | if secret_key.len() != 64 || hex::decode(&secret_key).is_err() { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `secret_key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> s3/block_ref_table.rs:101:3 [INFO] [stdout] | [INFO] [stdout] 101 | Ok(calculate_refcount(&table, tx, block)?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 101 - Ok(calculate_refcount(&table, tx, block)?) [INFO] [stdout] 101 + calculate_refcount(&table, tx, block) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> s3/mpu_table.rs:163:23 [INFO] [stdout] | [INFO] [stdout] 163 | (None, Some(_)) => other.checksum.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `other.checksum` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> s3/mpu_table.rs:164:36 [INFO] [stdout] | [INFO] [stdout] 164 | (Some(x), Some(y)) if x < *y => other.checksum.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `other.checksum` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> key_table.rs:162:44 [INFO] [stdout] | [INFO] [stdout] 162 | if secret_key.len() != 64 || hex::decode(&secret_key).is_err() { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `secret_key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> s3/block_ref_table.rs:101:3 [INFO] [stdout] | [INFO] [stdout] 101 | Ok(calculate_refcount(&table, tx, block)?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 101 - Ok(calculate_refcount(&table, tx, block)?) [INFO] [stdout] 101 + calculate_refcount(&table, tx, block) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> s3/mpu_table.rs:163:23 [INFO] [stdout] | [INFO] [stdout] 163 | (None, Some(_)) => other.checksum.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `other.checksum` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> s3/mpu_table.rs:164:36 [INFO] [stdout] | [INFO] [stdout] 164 | (Some(x), Some(y)) if x < *y => other.checksum.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `other.checksum` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> s3/lifecycle_worker.rs:44:1 [INFO] [stdout] | [INFO] [stdout] 44 | / enum State { [INFO] [stdout] 45 | | Completed(NaiveDate), [INFO] [stdout] | | -------------------- the second-largest variant contains at least 4 bytes [INFO] [stdout] 46 | |/ Running { [INFO] [stdout] 47 | || date: NaiveDate, [INFO] [stdout] 48 | || pos: Vec, [INFO] [stdout] 49 | || counter: usize, [INFO] [stdout] ... || [INFO] [stdout] 52 | || last_bucket: Option, [INFO] [stdout] 53 | || }, [INFO] [stdout] | ||_____- the largest variant contains at least 396 bytes [INFO] [stdout] 54 | | } [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] 52 - last_bucket: Option, [INFO] [stdout] 52 + last_bucket: Box>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> s3/lifecycle_worker.rs:44:1 [INFO] [stdout] | [INFO] [stdout] 44 | / enum State { [INFO] [stdout] 45 | | Completed(NaiveDate), [INFO] [stdout] | | -------------------- the second-largest variant contains at least 4 bytes [INFO] [stdout] 46 | |/ Running { [INFO] [stdout] 47 | || date: NaiveDate, [INFO] [stdout] 48 | || pos: Vec, [INFO] [stdout] 49 | || counter: usize, [INFO] [stdout] ... || [INFO] [stdout] 52 | || last_bucket: Option, [INFO] [stdout] 53 | || }, [INFO] [stdout] | ||_____- the largest variant contains at least 396 bytes [INFO] [stdout] 54 | | } [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] 52 - last_bucket: Option, [INFO] [stdout] 52 + last_bucket: Box>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> s3/lifecycle_worker.rs:377:6 [INFO] [stdout] | [INFO] [stdout] 377 | if !(size > size_gt) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(size <= size_gt)` [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] --> s3/lifecycle_worker.rs:382:6 [INFO] [stdout] | [INFO] [stdout] 382 | if !(size < size_lt) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(size >= size_lt)` [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 boolean expression can be simplified [INFO] [stdout] --> s3/lifecycle_worker.rs:377:6 [INFO] [stdout] | [INFO] [stdout] 377 | if !(size > size_gt) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(size <= size_gt)` [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] --> s3/lifecycle_worker.rs:382:6 [INFO] [stdout] | [INFO] [stdout] 382 | if !(size < size_lt) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(size >= size_lt)` [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] --> helper/bucket.rs:98:28 [INFO] [stdout] | [INFO] [stdout] 98 | .get_local(&EmptyKey, &bucket_id)? [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `bucket_id` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> helper/bucket.rs:98:28 [INFO] [stdout] | [INFO] [stdout] 98 | .get_local(&EmptyKey, &bucket_id)? [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `bucket_id` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> helper/bucket.rs:160:20 [INFO] [stdout] | [INFO] [stdout] 160 | .get(&EmptyKey, &key_id) [INFO] [stdout] | ^^^^^^^ help: change this to: `key_id` [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] --> helper/bucket.rs:160:20 [INFO] [stdout] | [INFO] [stdout] 160 | .get(&EmptyKey, &key_id) [INFO] [stdout] | ^^^^^^^ help: change this to: `key_id` [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: the borrowed expression implements the required traits [INFO] [stdout] --> snapshot.rs:72:16 [INFO] [stdout] | [INFO] [stdout] 72 | fs::read_dir(&snapshots_dir)?.collect::, std::io::Error>>()?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `snapshots_dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> snapshot.rs:72:16 [INFO] [stdout] | [INFO] [stdout] 72 | fs::read_dir(&snapshots_dir)?.collect::, std::io::Error>>()?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `snapshots_dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> garage.rs:324:23 [INFO] [stdout] | [INFO] [stdout] 324 | pub fn bucket_helper(&self) -> helper::bucket::BucketHelper { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 324 | pub fn bucket_helper(&self) -> helper::bucket::BucketHelper<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> garage.rs:328:20 [INFO] [stdout] | [INFO] [stdout] 328 | pub fn key_helper(&self) -> helper::key::KeyHelper { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 328 | pub fn key_helper(&self) -> helper::key::KeyHelper<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> garage.rs:332:29 [INFO] [stdout] | [INFO] [stdout] 332 | pub async fn locked_helper(&self) -> helper::locked::LockedHelper { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 332 | pub async fn locked_helper(&self) -> helper::locked::LockedHelper<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> helper/error.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Debug, Error, Serialize, Deserialize)] [INFO] [stdout] | ^---- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_Error` [INFO] [stdout] 7 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> helper/error.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Debug, Error, Serialize, Deserialize)] [INFO] [stdout] | ^---- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_Error` [INFO] [stdout] 7 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> helper/error.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Debug, Error, Serialize, Deserialize)] [INFO] [stdout] | ^---- [INFO] [stdout] | | [INFO] [stdout] | `From` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_convert_From_GarageError_FOR_Error` [INFO] [stdout] 7 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] 8 | #[error(display = "Internal error: {}", _0)] [INFO] [stdout] 9 | Internal(#[error(source)] GarageError), [INFO] [stdout] | ----------- `GarageError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> garage.rs:324:23 [INFO] [stdout] | [INFO] [stdout] 324 | pub fn bucket_helper(&self) -> helper::bucket::BucketHelper { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 324 | pub fn bucket_helper(&self) -> helper::bucket::BucketHelper<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> garage.rs:328:20 [INFO] [stdout] | [INFO] [stdout] 328 | pub fn key_helper(&self) -> helper::key::KeyHelper { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 328 | pub fn key_helper(&self) -> helper::key::KeyHelper<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> garage.rs:332:29 [INFO] [stdout] | [INFO] [stdout] 332 | pub async fn locked_helper(&self) -> helper::locked::LockedHelper { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 332 | pub async fn locked_helper(&self) -> helper::locked::LockedHelper<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> helper/error.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Debug, Error, Serialize, Deserialize)] [INFO] [stdout] | ^---- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_Error` [INFO] [stdout] 7 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> helper/error.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Debug, Error, Serialize, Deserialize)] [INFO] [stdout] | ^---- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_Error` [INFO] [stdout] 7 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> helper/error.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Debug, Error, Serialize, Deserialize)] [INFO] [stdout] | ^---- [INFO] [stdout] | | [INFO] [stdout] | `From` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_convert_From_GarageError_FOR_Error` [INFO] [stdout] 7 | pub enum Error { [INFO] [stdout] | ----- `Error` is not local [INFO] [stdout] 8 | #[error(display = "Internal error: {}", _0)] [INFO] [stdout] 9 | Internal(#[error(source)] GarageError), [INFO] [stdout] | ----------- `GarageError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 21s [INFO] running `Command { std: "docker" "inspect" "8d47cd483082efea3157a43be65b650175a60c05e051d35d0c904a5b9fbd5cc1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8d47cd483082efea3157a43be65b650175a60c05e051d35d0c904a5b9fbd5cc1", kill_on_drop: false }` [INFO] [stdout] 8d47cd483082efea3157a43be65b650175a60c05e051d35d0c904a5b9fbd5cc1