[INFO] fetching crate calimero-storage 0.10.1-rc.3... [INFO] linting calimero-storage-0.10.1-rc.3 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate calimero-storage 0.10.1-rc.3 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate calimero-storage 0.10.1-rc.3 [INFO] finished tweaking crates.io crate calimero-storage 0.10.1-rc.3 [INFO] tweaked toml for crates.io crate calimero-storage 0.10.1-rc.3 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate calimero-storage 0.10.1-rc.3 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate calimero-storage 0.10.1-rc.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] 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 claims v0.7.1 [INFO] [stderr] Downloaded serial_test_derive v3.4.0 [INFO] [stderr] Downloaded velcro_core v0.5.4 [INFO] [stderr] Downloaded serial_test v3.4.0 [INFO] [stderr] Downloaded velcro_macros v0.5.4 [INFO] [stderr] Downloaded sdd v3.0.10 [INFO] [stderr] Downloaded velcro v0.5.4 [INFO] [stderr] Downloaded scc v2.4.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 670d5190e874a1cefd11b3560ed7cfffd560521f10a574da9a8a8dd1b6a06347 [INFO] running `Command { std: "docker" "start" "-a" "670d5190e874a1cefd11b3560ed7cfffd560521f10a574da9a8a8dd1b6a06347", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "670d5190e874a1cefd11b3560ed7cfffd560521f10a574da9a8a8dd1b6a06347", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "670d5190e874a1cefd11b3560ed7cfffd560521f10a574da9a8a8dd1b6a06347", kill_on_drop: false }` [INFO] [stdout] 670d5190e874a1cefd11b3560ed7cfffd560521f10a574da9a8a8dd1b6a06347 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 30e220ae143c541e48536bdd2c71c5e2b1fdc5d5e5a715dcd6222faa96298878 [INFO] running `Command { std: "docker" "start" "-a" "30e220ae143c541e48536bdd2c71c5e2b1fdc5d5e5a715dcd6222faa96298878", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Checking stable_deref_trait v1.2.1 [INFO] [stderr] Checking cfg-if v1.0.4 [INFO] [stderr] Checking litemap v0.8.1 [INFO] [stderr] Checking writeable v0.6.2 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Checking pin-project-lite v0.2.17 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Checking memchr v2.8.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Checking core2 v0.4.0 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Checking const-str v0.4.3 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Checking unsigned-varint v0.8.0 [INFO] [stderr] Checking percent-encoding v2.3.2 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Compiling borsh v1.6.0 [INFO] [stderr] Checking form_urlencoded v1.2.2 [INFO] [stderr] Checking bs58 v0.5.1 [INFO] [stderr] Checking multihash v0.19.3 [INFO] [stderr] Checking itoa v1.0.17 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Checking base-x v0.2.11 [INFO] [stderr] Checking signature v2.2.0 [INFO] [stderr] Compiling eyre v0.6.12 [INFO] [stderr] Checking ed25519 v2.2.3 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking indenter v0.3.4 [INFO] [stderr] Checking static_assertions v1.1.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling prettyplease v0.2.37 [INFO] [stderr] Checking arrayref v0.3.9 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking futures-task v0.3.32 [INFO] [stderr] Checking futures-core v0.3.32 [INFO] [stderr] Checking slab v0.4.12 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Checking lock_api v0.4.14 [INFO] [stderr] Checking calimero-sys v0.10.1-rc.3 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking sdd v3.0.10 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking log v0.4.29 [INFO] [stderr] Checking scc v2.4.0 [INFO] [stderr] Compiling claims v0.7.1 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling toml_edit v0.23.10+spec-1.0.0 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking hkdf v0.12.4 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Compiling velcro_core v0.5.4 [INFO] [stderr] Checking futures-executor v0.3.32 [INFO] [stderr] Compiling velcro_macros v0.5.4 [INFO] [stderr] Checking velcro v0.5.4 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling synstructure v0.13.2 [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 displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling match-lookup v0.1.2 [INFO] [stderr] Compiling data-encoding-macro-internal v0.1.17 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Compiling borsh-derive v1.6.0 [INFO] [stderr] Compiling calimero-storage-macros v0.10.1-rc.3 [INFO] [stderr] Compiling serial_test_derive v3.4.0 [INFO] [stderr] Checking base256emoji v1.0.2 [INFO] [stderr] Checking data-encoding-macro v0.1.19 [INFO] [stderr] Checking multibase v0.9.2 [INFO] [stderr] Checking serial_test v3.4.0 [INFO] [stderr] Compiling calimero-sdk-macros v0.10.1-rc.3 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking libp2p-identity v0.2.13 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking ed25519-dalek v2.2.0 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking calimero-wasm-abi v0.10.1-rc.3 [INFO] [stderr] Checking fixedstr v0.5.10 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking multiaddr v0.18.2 [INFO] [stderr] Checking calimero-primitives v0.10.1-rc.3 [INFO] [stderr] Checking calimero-prelude v0.10.1-rc.3 [INFO] [stderr] Checking calimero-sdk v0.10.1-rc.3 [INFO] [stderr] Checking calimero-storage v0.10.1-rc.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `logical_counter` [INFO] [stdout] --> src/delta.rs:13:28 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::logical_clock::{logical_counter, HybridTimestamp}; [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: `logical_counter` [INFO] [stdout] --> src/delta.rs:13:28 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::logical_clock::{logical_counter, HybridTimestamp}; [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 variable: `incoming_created_at` [INFO] [stdout] --> src/interface.rs:907:13 [INFO] [stdout] | [INFO] [stdout] 907 | let incoming_created_at = metadata.created_at; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_incoming_created_at` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `poisoned` [INFO] [stdout] --> src/merge/registry.rs:136:58 [INFO] [stdout] | [INFO] [stdout] 136 | let registry = MERGE_REGISTRY.read().unwrap_or_else(|poisoned| { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_poisoned` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `collections::Collection<(K, V), S>` is more private than the item `collections::unordered_map::UnorderedMap::inner` [INFO] [stdout] --> src/collections/unordered_map.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub(crate) inner: Collection<(K, V), S>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `collections::unordered_map::UnorderedMap::inner` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `collections::Collection<(K, V), S>` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/collections.rs:92:1 [INFO] [stdout] | [INFO] [stdout] 92 | struct Collection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Entries` is never constructed [INFO] [stdout] --> src/collections.rs:119:8 [INFO] [stdout] | [INFO] [stdout] 119 | struct Entries { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new_with_field_name` and `reassign_deterministic_id` are never used [INFO] [stdout] --> src/collections.rs:185:19 [INFO] [stdout] | [INFO] [stdout] 139 | impl Collection { [INFO] [stdout] | ------------------------------------------------------------------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 185 | pub(crate) fn new_with_field_name(parent_id: Option, field_name: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | pub(crate) fn reassign_deterministic_id(&mut self, field_name: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/action.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | Action::Add { id, .. } => *id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | clippy::pattern_type_mismatch, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/action.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | / Action::Add { [INFO] [stdout] 147 | | id, [INFO] [stdout] 148 | | data, [INFO] [stdout] 149 | | ancestors, [INFO] [stdout] ... | [INFO] [stdout] 156 | | metadata, [INFO] [stdout] 157 | | } => { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/action.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | StorageType::Public => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/address.rs:131:16 [INFO] [stdout] | [INFO] [stdout] 131 | if str.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!str.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: doc list item overindented [INFO] [stdout] --> src/collections/counter.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | /// When `true`, acts as PN-Counter (supports decrement). [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `map_err(|_|...` wildcard pattern discards the original error [INFO] [stdout] --> src/collections/counter.rs:414:58 [INFO] [stdout] | [INFO] [stdout] 414 | let count_i64 = i64::try_from(count).map_err(|_| { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider storing the original error as a source in the new error, or silence this warning using an ignored identifier (`.map_err(|_foo| ...`) [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_err_ignore [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | clippy::map_err_ignore, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `map_err(|_|...` wildcard pattern discards the original error [INFO] [stdout] --> src/collections/counter.rs:432:58 [INFO] [stdout] | [INFO] [stdout] 432 | let count_i64 = i64::try_from(count).map_err(|_| { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider storing the original error as a source in the new error, or silence this warning using an ignored identifier (`.map_err(|_foo| ...`) [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_err_ignore [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/unordered_map.rs:198:17 [INFO] [stdout] | [INFO] [stdout] 198 | let (_, v) = &mut *entry; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&mut _` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UnorderedMap` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/collections/unordered_map.rs:232:5 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn len(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `iter` is shadowed [INFO] [stdout] --> src/collections/unordered_map.rs:499:13 [INFO] [stdout] | [INFO] [stdout] 499 | let iter = iter.into_iter().map(|(k, v)| { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/unordered_map.rs:496:58 [INFO] [stdout] | [INFO] [stdout] 496 | fn extend>(&mut self, iter: I) { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | clippy::shadow_reuse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> src/collections/unordered_map.rs:569:1 [INFO] [stdout] | [INFO] [stdout] 569 | / pub enum Entry<'a, K, V, S> [INFO] [stdout] 570 | | where [INFO] [stdout] 571 | | K: BorshSerialize + BorshDeserialize, [INFO] [stdout] 572 | | V: BorshSerialize + BorshDeserialize, [INFO] [stdout] ... | [INFO] [stdout] 576 | | Occupied(OccupiedEntry<'a, K, V, S>), [INFO] [stdout] | | ------------------------------------ the largest variant contains at least 329 bytes [INFO] [stdout] 577 | | /// A vacant entry. [INFO] [stdout] 578 | | Vacant(VacantEntry<'a, K, V, S>), [INFO] [stdout] | | -------------------------------- the second-largest variant contains at least 8 bytes [INFO] [stdout] 579 | | } [INFO] [stdout] | |_^ the entire enum is at least 329 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] 576 - Occupied(OccupiedEntry<'a, K, V, S>), [INFO] [stdout] 576 + Occupied(Box>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UnorderedSet` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/collections/unordered_set.rs:171:5 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn len(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `iter` is shadowed [INFO] [stdout] --> src/collections/unordered_set.rs:324:13 [INFO] [stdout] | [INFO] [stdout] 324 | let iter = iter.into_iter().map(|v| { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/unordered_set.rs:321:53 [INFO] [stdout] | [INFO] [stdout] 321 | fn extend>(&mut self, iter: I) { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections/vector.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / let _ = index.checked_add(1).ok_or_else(|| { [INFO] [stdout] 25 | | StoreError::ArithmeticOverflow(format!( [INFO] [stdout] 26 | | "addition overflow: {} + {} exceeds usize::MAX", [INFO] [stdout] 27 | | index, 1 [INFO] [stdout] 28 | | )) [INFO] [stdout] 29 | | })?; [INFO] [stdout] | |________^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections/vector.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | let _ = index.checked_add(1).ok_or_else(|| { [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | clippy::let_underscore_untyped, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `last` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/vector.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | let last = entry.remove()?; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:137:18 [INFO] [stdout] | [INFO] [stdout] 137 | let Some(last) = self.inner.last()? else { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | clippy::shadow_unrelated, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `iter` is shadowed [INFO] [stdout] --> src/collections/vector.rs:389:13 [INFO] [stdout] | [INFO] [stdout] 389 | let iter = iter.into_iter().map(|v| (None, v)); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:388:53 [INFO] [stdout] | [INFO] [stdout] 388 | fn extend>(&mut self, iter: I) { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/collections/rga.rs:81:26 [INFO] [stdout] | [INFO] [stdout] 81 | .map_err(|e| borsh::io::Error::new(borsh::io::ErrorKind::Other, e))?; [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] 81 - .map_err(|e| borsh::io::Error::new(borsh::io::ErrorKind::Other, e))?; [INFO] [stdout] 81 + .map_err(|e| borsh::io::Error::other(e))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:231:23 [INFO] [stdout] | [INFO] [stdout] 231 | .map(|(id, _)| *id) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections/rga.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 244 | let _ = self.chars.insert(CharKey::new(char_id), new_char)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections/rga.rs:244:14 [INFO] [stdout] | [INFO] [stdout] 244 | let _ = self.chars.insert(CharKey::new(char_id), new_char)?; [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:257:13 [INFO] [stdout] | [INFO] [stdout] 257 | let (char_id, _) = ordered.get(pos).ok_or(StoreError::StorageError( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections/rga.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | let _ = self.chars.remove(&CharKey::new(*char_id))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections/rga.rs:261:14 [INFO] [stdout] | [INFO] [stdout] 261 | let _ = self.chars.remove(&CharKey::new(*char_id))?; [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:273:32 [INFO] [stdout] | [INFO] [stdout] 273 | Ok(ordered.iter().map(|(_, c)| c.as_char()).collect()) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:309:23 [INFO] [stdout] | [INFO] [stdout] 309 | .map(|(id, _)| *id) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections/rga.rs:324:13 [INFO] [stdout] | [INFO] [stdout] 324 | let _ = self.chars.insert(CharKey::new(char_id), new_char)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections/rga.rs:324:18 [INFO] [stdout] | [INFO] [stdout] 324 | let _ = self.chars.insert(CharKey::new(char_id), new_char)?; [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:356:13 [INFO] [stdout] | [INFO] [stdout] 356 | for (char_id, _) in &ordered[start..actual_end] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections/rga.rs:357:13 [INFO] [stdout] | [INFO] [stdout] 357 | let _ = self.chars.remove(&CharKey::new(*char_id))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections/rga.rs:357:18 [INFO] [stdout] | [INFO] [stdout] 357 | let _ = self.chars.remove(&CharKey::new(*char_id))?; [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:381:26 [INFO] [stdout] | [INFO] [stdout] 381 | .filter(|(_, c)| c.left == current_left) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:382:26 [INFO] [stdout] | [INFO] [stdout] 382 | .filter(|(id, _)| !ordered.iter().any(|(placed_id, _)| placed_id == id)) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:382:56 [INFO] [stdout] | [INFO] [stdout] 382 | .filter(|(id, _)| !ordered.iter().any(|(placed_id, _)| placed_id == id)) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:388:29 [INFO] [stdout] | [INFO] [stdout] 388 | if let Some((next_id, next_char)) = chars [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:390:28 [INFO] [stdout] | [INFO] [stdout] 390 | .find(|(id, _)| !ordered.iter().any(|(placed_id, _)| placed_id == id)) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:390:58 [INFO] [stdout] | [INFO] [stdout] 390 | .find(|(id, _)| !ordered.iter().any(|(placed_id, _)| placed_id == id)) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:402:41 [INFO] [stdout] | [INFO] [stdout] 402 | candidates.sort_by_key(|(id, _)| std::cmp::Reverse(*id)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:405:21 [INFO] [stdout] | [INFO] [stdout] 405 | let (next_id, next_char) = candidates[0]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/crdt_meta.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | MergeError::IncompatibleStates => write!(f, "Incompatible CRDT states"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collections/crdt_meta.rs:145:28 [INFO] [stdout] | [INFO] [stdout] 145 | fn decompose(&self) -> Result, DecomposeError>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/crdt_meta.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | DecomposeError::MissingField(field) => write!(f, "Missing field: {}", field), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/composite_key.rs:216:13 [INFO] [stdout] | [INFO] [stdout] 216 | ParseError::MissingSeparator => write!(f, "Composite key missing separator '::'"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/crdt_impls.rs:65:30 [INFO] [stdout] | [INFO] [stdout] 65 | (Some(self_val), Some(other_val)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections/crdt_impls.rs:160:17 [INFO] [stdout] | [INFO] [stdout] 160 | / let _ = self.positive.insert(executor_id, new_count).map_err(|e| { [INFO] [stdout] 161 | | MergeError::StorageError(format!( [INFO] [stdout] 162 | | "Failed to insert positive counter value: {:?}", [INFO] [stdout] 163 | | e [INFO] [stdout] 164 | | )) [INFO] [stdout] 165 | | })?; [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections/crdt_impls.rs:160:22 [INFO] [stdout] | [INFO] [stdout] 160 | let _ = self.positive.insert(executor_id, new_count).map_err(|e| { [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections/crdt_impls.rs:188:21 [INFO] [stdout] | [INFO] [stdout] 188 | / let _ = self.negative.insert(executor_id, new_count).map_err(|e| { [INFO] [stdout] 189 | | MergeError::StorageError(format!( [INFO] [stdout] 190 | | "Failed to insert negative counter value: {:?}", [INFO] [stdout] 191 | | e [INFO] [stdout] 192 | | )) [INFO] [stdout] 193 | | })?; [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections/crdt_impls.rs:188:26 [INFO] [stdout] | [INFO] [stdout] 188 | let _ = self.negative.insert(executor_id, new_count).map_err(|e| { [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> src/collections/crdt_impls.rs:239:17 [INFO] [stdout] | [INFO] [stdout] 239 | / drop(self.chars.insert(key, char_data).map_err(|e| { [INFO] [stdout] 240 | | MergeError::StorageError(format!("Failed to insert char: {:?}", e)) [INFO] [stdout] 241 | | })?); [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `std::option::Option` [INFO] [stdout] --> src/collections/crdt_impls.rs:239:22 [INFO] [stdout] | [INFO] [stdout] 239 | drop(self.chars.insert(key, char_data).map_err(|e| { [INFO] [stdout] | ______________________^ [INFO] [stdout] 240 | | MergeError::StorageError(format!("Failed to insert char: {:?}", e)) [INFO] [stdout] 241 | | })?); [INFO] [stdout] | |___________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] = note: `#[warn(clippy::drop_non_drop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections/crdt_impls.rs:384:13 [INFO] [stdout] | [INFO] [stdout] 384 | / let _ = self [INFO] [stdout] 385 | | .insert(value) [INFO] [stdout] 386 | | .map_err(|e| MergeError::StorageError(format!("Failed to insert: {:?}", e)))?; [INFO] [stdout] | |______________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections/crdt_impls.rs:384:18 [INFO] [stdout] | [INFO] [stdout] 384 | let _ = self [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/decompose_impls.rs:124:38 [INFO] [stdout] | [INFO] [stdout] 124 | indexed_entries.sort_by_key(|(index, _)| *index); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `value` is shadowed [INFO] [stdout] --> src/collections/root.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | let value = value.get_or_insert_with(|| self.inner.get(id).unwrap().unwrap()); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/root.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | let mut value = self.value.borrow_mut(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `value` is shadowed [INFO] [stdout] --> src/collections/root.rs:83:13 [INFO] [stdout] | [INFO] [stdout] 83 | let value = unsafe { &mut *ptr::from_mut(value) }; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/root.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | let value = value.get_or_insert_with(|| self.inner.get(id).unwrap().unwrap()); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/root.rs:136:25 [INFO] [stdout] | [INFO] [stdout] 136 | / Action::Add { [INFO] [stdout] 137 | | id, data, metadata, .. [INFO] [stdout] 138 | | } [INFO] [stdout] 139 | | | Action::Update { [INFO] [stdout] 140 | | id, data, metadata, .. [INFO] [stdout] 141 | | } if id.is_root() => { [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections.rs:137:46 [INFO] [stdout] | [INFO] [stdout] 137 | static ROOT_ID: LazyLock = LazyLock::new(|| Id::root()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Id::root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections.rs:143:36 [INFO] [stdout] | [INFO] [stdout] 143 | let id = id.unwrap_or_else(|| Id::random()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Id::random` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `id` is shadowed [INFO] [stdout] --> src/collections.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | let id = id.unwrap_or_else(|| Id::random()); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:142:12 [INFO] [stdout] | [INFO] [stdout] 142 | fn new(id: Option) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | let _ = >::add_child_to(*ROOT_ID, &mut this).expect("add child"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections.rs:154:18 [INFO] [stdout] | [INFO] [stdout] 154 | let _ = >::add_child_to(*ROOT_ID, &mut this).expect("add child"); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | let _ = >::add_child_to(*ROOT_ID, &mut this).expect("add child"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections.rs:197:18 [INFO] [stdout] | [INFO] [stdout] 197 | let _ = >::add_child_to(*ROOT_ID, &mut this).expect("add child"); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections.rs:230:13 [INFO] [stdout] | [INFO] [stdout] 230 | let _ = >::add_child_to(*ROOT_ID, &mut this).expect("add child"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections.rs:230:18 [INFO] [stdout] | [INFO] [stdout] 230 | let _ = >::add_child_to(*ROOT_ID, &mut this).expect("add child"); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `_ignored` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections.rs:259:13 [INFO] [stdout] | [INFO] [stdout] 259 | let _ignored = S::storage_remove(Key::Index(old_id)); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | let _ignored = S::storage_remove(Key::Entry(old_id)); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections.rs:262:9 [INFO] [stdout] | [INFO] [stdout] 262 | let _ = >::remove_child_reference_only(*ROOT_ID, old_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections.rs:262:14 [INFO] [stdout] | [INFO] [stdout] 262 | let _ = >::remove_child_reference_only(*ROOT_ID, old_id); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections.rs:268:9 [INFO] [stdout] | [INFO] [stdout] 268 | / let _ = >::add_child_to(*ROOT_ID, self) [INFO] [stdout] 269 | | .expect("failed to add collection with new ID"); [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections.rs:268:14 [INFO] [stdout] | [INFO] [stdout] 268 | let _ = >::add_child_to(*ROOT_ID, self) [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `_ignored` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections.rs:296:13 [INFO] [stdout] | [INFO] [stdout] 296 | let _ignored = S::storage_remove(Key::Index(old_id)); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:295:13 [INFO] [stdout] | [INFO] [stdout] 295 | let _ignored = S::storage_remove(Key::Entry(old_id)); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections.rs:299:9 [INFO] [stdout] | [INFO] [stdout] 299 | let _ = >::remove_child_reference_only(*ROOT_ID, old_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections.rs:299:14 [INFO] [stdout] | [INFO] [stdout] 299 | let _ = >::remove_child_reference_only(*ROOT_ID, old_id); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 306 | / let _ = >::add_child_to(*ROOT_ID, self) [INFO] [stdout] 307 | | .expect("failed to add collection with new ID"); [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections.rs:306:14 [INFO] [stdout] | [INFO] [stdout] 306 | let _ = >::add_child_to(*ROOT_ID, self) [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `entry` is shadowed [INFO] [stdout] --> src/collections.rs:340:23 [INFO] [stdout] | [INFO] [stdout] 340 | Ok(entry.map(|entry| entry.item)) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:338:13 [INFO] [stdout] | [INFO] [stdout] 338 | let entry = >::find_by_id::>(id)?; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `entry` is shadowed [INFO] [stdout] --> src/collections.rs:350:23 [INFO] [stdout] | [INFO] [stdout] 350 | Ok(entry.map(|entry| EntryMut { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:348:13 [INFO] [stdout] | [INFO] [stdout] 348 | let entry = >::find_by_id::>(id)?; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `children` is shadowed [INFO] [stdout] --> src/collections.rs:418:13 [INFO] [stdout] | [INFO] [stdout] 418 | let children = unsafe { &mut *ptr::from_mut(children) }; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:415:13 [INFO] [stdout] | [INFO] [stdout] 415 | let children = cache.as_mut().expect("children"); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections.rs:447:9 [INFO] [stdout] | [INFO] [stdout] 447 | let _ = >::remove_child_from(self.collection.id(), self.entry.id())?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections.rs:447:14 [INFO] [stdout] | [INFO] [stdout] 447 | let _ = >::remove_child_from(self.collection.id(), self.entry.id())?; [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections.rs:449:9 [INFO] [stdout] | [INFO] [stdout] 449 | / let _ = self [INFO] [stdout] 450 | | .collection [INFO] [stdout] 451 | | .children_cache()? [INFO] [stdout] 452 | | .shift_remove(&self.entry.id()); [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections.rs:449:14 [INFO] [stdout] | [INFO] [stdout] 449 | let _ = self [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections.rs:514:9 [INFO] [stdout] | [INFO] [stdout] 514 | let _ = >::add_child_to(self.collection.id(), item)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections.rs:514:14 [INFO] [stdout] | [INFO] [stdout] 514 | let _ = >::add_child_to(self.collection.id(), item)?; [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/collections.rs:525:13 [INFO] [stdout] | [INFO] [stdout] 525 | let _ = >::remove_child_from(self.collection.id(), child)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/collections.rs:525:18 [INFO] [stdout] | [INFO] [stdout] 525 | let _ = >::remove_child_from(self.collection.id(), child)?; [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/delta.rs:82:17 [INFO] [stdout] | [INFO] [stdout] 82 | / Action::Add { [INFO] [stdout] 83 | | id, data, metadata, .. [INFO] [stdout] 84 | | } [INFO] [stdout] 85 | | | Action::Update { [INFO] [stdout] 86 | | id, data, metadata, .. [INFO] [stdout] 87 | | } => { [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/delta.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | hasher.update(&id_bytes); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `id_bytes` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/delta.rs:96:35 [INFO] [stdout] | [INFO] [stdout] 96 | hasher.update(&id_bytes); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `id_bytes` [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] --> src/delta.rs:102:35 [INFO] [stdout] | [INFO] [stdout] 102 | hasher.update(&id_bytes); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `id_bytes` [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: type of pattern does not match the expression type [INFO] [stdout] --> src/delta.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 177 | None => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&mut _` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/delta.rs:190:37 [INFO] [stdout] | [INFO] [stdout] 190 | self.max_hlc.unwrap_or_else(|| env::hlc_timestamp()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `env::hlc_timestamp` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/delta.rs:347:9 [INFO] [stdout] | [INFO] [stdout] 347 | StorageType::Public | StorageType::Frozen => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/entities.rs:333:9 [INFO] [stdout] | [INFO] [stdout] 333 | &mut *self.metadata.updated_at [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut self.metadata.updated_at` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/entities.rs:407:1 [INFO] [stdout] | [INFO] [stdout] 407 | / impl Default for StorageType { [INFO] [stdout] 408 | | fn default() -> Self { [INFO] [stdout] 409 | | Self::Public [INFO] [stdout] 410 | | } [INFO] [stdout] 411 | | } [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] 392 + #[derive(Default)] [INFO] [stdout] 393 | pub enum StorageType { [INFO] [stdout] 394 | /// Public data, accessible to all members of context. [INFO] [stdout] 395 ~ #[default] [INFO] [stdout] 396 ~ Public, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:59:19 [INFO] [stdout] | [INFO] [stdout] 59 | storage_read: std::rc::Rc Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:60:20 [INFO] [stdout] | [INFO] [stdout] 60 | storage_write: std::rc::Rc bool>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:75:23 [INFO] [stdout] | [INFO] [stdout] 75 | storage_read: std::rc::Rc Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:76:24 [INFO] [stdout] | [INFO] [stdout] 76 | storage_write: std::rc::Rc bool>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:92:35 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn storage_read(&self) -> std::rc::Rc Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:98:36 [INFO] [stdout] | [INFO] [stdout] 98 | pub fn storage_write(&self) -> std::rc::Rc bool> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/env.rs:234:1 [INFO] [stdout] | [INFO] [stdout] 234 | pub fn update_hlc(remote_ts: &HybridTimestamp) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] = note: `#[warn(clippy::result_unit_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/env.rs:398:13 [INFO] [stdout] | [INFO] [stdout] 398 | let _ = rh.borrow_mut().replace(*root_hash); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/env.rs:398:18 [INFO] [stdout] | [INFO] [stdout] 398 | let _ = rh.borrow_mut().replace(*root_hash); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `public_key` is shadowed [INFO] [stdout] --> src/env.rs:497:16 [INFO] [stdout] | [INFO] [stdout] 497 | let Ok(public_key) = VerifyingKey::from_bytes(public_key) else { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/env.rs:492:9 [INFO] [stdout] | [INFO] [stdout] 492 | public_key: &[u8; 32], [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `signature` is shadowed [INFO] [stdout] --> src/env.rs:501:13 [INFO] [stdout] | [INFO] [stdout] 501 | let signature = Signature::from_bytes(signature); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/env.rs:491:9 [INFO] [stdout] | [INFO] [stdout] 491 | signature: &[u8; 64], [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/error.rs:102:21 [INFO] [stdout] | [INFO] [stdout] 102 | let (pk, nonce) = &**data; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/index.rs:166:16 [INFO] [stdout] | [INFO] [stdout] 166 | if let Some(children_vec) = children { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/index.rs:296:12 [INFO] [stdout] | [INFO] [stdout] 296 | Ok(parent_index [INFO] [stdout] | ____________^ [INFO] [stdout] 297 | | .children [INFO] [stdout] 298 | | .as_ref() [INFO] [stdout] 299 | | .map_or(false, |c| !c.is_empty())) [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] 299 - .map_or(false, |c| !c.is_empty())) [INFO] [stdout] 299 + .is_some_and(|c| !c.is_empty())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/index.rs:312:20 [INFO] [stdout] | [INFO] [stdout] 312 | if let Some(children) = &mut parent_index.children { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&mut _` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/index.rs:322:63 [INFO] [stdout] | [INFO] [stdout] 322 | ... new_child_hash = %hex::encode(&new_child_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `new_child_hash` [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] --> src/index.rs:343:50 [INFO] [stdout] | [INFO] [stdout] 343 | old_full_hash = %hex::encode(&old_full_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `old_full_hash` [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] --> src/index.rs:344:50 [INFO] [stdout] | [INFO] [stdout] 344 | new_full_hash = %hex::encode(&parent_index.full_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `parent_index.full_hash` [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: type of pattern does not match the expression type [INFO] [stdout] --> src/index.rs:405:16 [INFO] [stdout] | [INFO] [stdout] 405 | if let Some(children) = &mut parent_index.children { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&mut _` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `updated_at` is shadowed [INFO] [stdout] --> src/index.rs:449:21 [INFO] [stdout] | [INFO] [stdout] 449 | if let Some(updated_at) = updated_at { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/index.rs:442:9 [INFO] [stdout] | [INFO] [stdout] 442 | updated_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/index.rs:468:45 [INFO] [stdout] | [INFO] [stdout] 468 | old_own_hash = %hex::encode(&old_own_hash), [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `old_own_hash` [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] --> src/index.rs:469:45 [INFO] [stdout] | [INFO] [stdout] 469 | new_own_hash = %hex::encode(&merkle_hash), [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `merkle_hash` [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] --> src/index.rs:470:46 [INFO] [stdout] | [INFO] [stdout] 470 | old_full_hash = %hex::encode(&old_full_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `old_full_hash` [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] --> src/index.rs:471:46 [INFO] [stdout] | [INFO] [stdout] 471 | new_full_hash = %hex::encode(&index.full_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `index.full_hash` [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: useless conversion to the same type: `std::io::Error` [INFO] [stdout] --> src/interface.rs:81:79 [INFO] [stdout] | [INFO] [stdout] 81 | let data = to_vec(child).map_err(|e| StorageError::SerializationError(e.into()))?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | / Action::Add { [INFO] [stdout] 118 | | metadata, data, id, .. [INFO] [stdout] 119 | | } [INFO] [stdout] 120 | | | Action::Update { [INFO] [stdout] 121 | | metadata, data, id, .. [INFO] [stdout] 122 | | } => { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:126:21 [INFO] [stdout] | [INFO] [stdout] 126 | / StorageType::User { [INFO] [stdout] 127 | | owner, [INFO] [stdout] 128 | | signature_data, [INFO] [stdout] 129 | | } => { [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:214:29 [INFO] [stdout] | [INFO] [stdout] 214 | / ... StorageType::User { [INFO] [stdout] 215 | | ... owner, [INFO] [stdout] 216 | | ... signature_data, [INFO] [stdout] 217 | | ... } => { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `parent` is shadowed [INFO] [stdout] --> src/interface.rs:289:25 [INFO] [stdout] | [INFO] [stdout] 289 | let parent = parent.replace(this); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:287:21 [INFO] [stdout] | [INFO] [stdout] 287 | let mut parent = None; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `parent` is shadowed [INFO] [stdout] --> src/interface.rs:299:30 [INFO] [stdout] | [INFO] [stdout] 299 | let Some(parent) = parent else { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:289:25 [INFO] [stdout] | [INFO] [stdout] 289 | let parent = parent.replace(this); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `parent` is shadowed [INFO] [stdout] --> src/interface.rs:323:40 [INFO] [stdout] | [INFO] [stdout] 323 | } else if let Some(parent) = parent { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:287:21 [INFO] [stdout] | [INFO] [stdout] 287 | let mut parent = None; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `parent` is shadowed [INFO] [stdout] --> src/interface.rs:358:29 [INFO] [stdout] | [INFO] [stdout] 358 | if let Some(parent) = parent { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:287:21 [INFO] [stdout] | [INFO] [stdout] 287 | let mut parent = None; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `_ignored` shadows a previous, unrelated binding [INFO] [stdout] --> src/interface.rs:428:13 [INFO] [stdout] | [INFO] [stdout] 428 | let _ignored = >::mark_deleted(id, deleted_at); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:427:13 [INFO] [stdout] | [INFO] [stdout] 427 | let _ignored = S::storage_remove(Key::Entry(id)); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `parent_id` is shadowed [INFO] [stdout] --> src/interface.rs:433:21 [INFO] [stdout] | [INFO] [stdout] 433 | if let Some(parent_id) = parent_id { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:424:13 [INFO] [stdout] | [INFO] [stdout] 424 | let parent_id = >::get_parent_id(id)?; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `local_metadata` is shadowed [INFO] [stdout] --> src/interface.rs:504:13 [INFO] [stdout] | [INFO] [stdout] 504 | let local_metadata = local_metadata.ok_or(StorageError::IndexNotFound(id))?; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:488:13 [INFO] [stdout] | [INFO] [stdout] 488 | let local_metadata = >::get_metadata(id)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `foreign_entity_data` is shadowed [INFO] [stdout] --> src/interface.rs:517:22 [INFO] [stdout] | [INFO] [stdout] 517 | Some(foreign_entity_data) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:481:9 [INFO] [stdout] | [INFO] [stdout] 481 | foreign_entity_data: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `id` shadows a previous, unrelated binding [INFO] [stdout] --> src/interface.rs:587:21 [INFO] [stdout] | [INFO] [stdout] 587 | for id in foreign_child_map.keys() { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:486:13 [INFO] [stdout] | [INFO] [stdout] 486 | let id = foreign_index_data.id; [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:641:20 [INFO] [stdout] | [INFO] [stdout] 641 | if let Action::Compare { .. } = &action { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `id` is shadowed [INFO] [stdout] --> src/interface.rs:716:13 [INFO] [stdout] | [INFO] [stdout] 716 | let id = id.unwrap_or_else(Id::root); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:715:37 [INFO] [stdout] | [INFO] [stdout] 715 | pub fn generate_comparison_data(id: Option) -> Result { [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `root` is shadowed [INFO] [stdout] --> src/interface.rs:834:32 [INFO] [stdout] | [INFO] [stdout] 834 | let hash = if let Some(root) = root { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:830:33 [INFO] [stdout] | [INFO] [stdout] 830 | pub fn commit_root(root: Option) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::io::Error` [INFO] [stdout] --> src/interface.rs:843:83 [INFO] [stdout] | [INFO] [stdout] 843 | let data = to_vec(&root).map_err(|e| StorageError::SerializationError(e.into()))?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `hash` is shadowed [INFO] [stdout] --> src/interface.rs:850:21 [INFO] [stdout] | [INFO] [stdout] 850 | if let Some(hash) = hash { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:834:13 [INFO] [stdout] | [INFO] [stdout] 834 | let hash = if let Some(root) = root { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::io::Error` [INFO] [stdout] --> src/interface.rs:882:80 [INFO] [stdout] | [INFO] [stdout] 882 | let data = to_vec(entity).map_err(|e| StorageError::SerializationError(e.into()))?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:914:33 [INFO] [stdout] | [INFO] [stdout] 914 | let final_data = if let Some(last_metadata) = &last_metadata { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `last_metadata` is shadowed [INFO] [stdout] --> src/interface.rs:914:38 [INFO] [stdout] | [INFO] [stdout] 914 | let final_data = if let Some(last_metadata) = &last_metadata { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:913:13 [INFO] [stdout] | [INFO] [stdout] 913 | let last_metadata = >::get_metadata(id)?; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/interface.rs:932:54 [INFO] [stdout] | [INFO] [stdout] 932 | existing_hash = %hex::encode(&existing_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `existing_hash` [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] --> src/interface.rs:934:54 [INFO] [stdout] | [INFO] [stdout] 934 | incoming_hash = %hex::encode(&incoming_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `incoming_hash` [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] --> src/interface.rs:951:52 [INFO] [stdout] | [INFO] [stdout] 951 | merged_hash = %hex::encode(&merged_hash), [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `merged_hash` [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] --> src/interface.rs:962:54 [INFO] [stdout] | [INFO] [stdout] 962 | incoming_hash = %hex::encode(&incoming_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `incoming_hash` [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] --> src/interface.rs:1003:50 [INFO] [stdout] | [INFO] [stdout] 1003 | incoming_hash = %hex::encode(&incoming_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `incoming_hash` [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] --> src/interface.rs:1019:41 [INFO] [stdout] | [INFO] [stdout] 1019 | own_hash = %hex::encode(&own_hash), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `own_hash` [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] --> src/interface.rs:1020:42 [INFO] [stdout] | [INFO] [stdout] 1020 | full_hash = %hex::encode(&full_hash), [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `full_hash` [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: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:1102:13 [INFO] [stdout] | [INFO] [stdout] 1102 | let Some(crdt_type) = &metadata.crdt_type else { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `mut metadata` is shadowed [INFO] [stdout] --> src/interface.rs:1190:17 [INFO] [stdout] | [INFO] [stdout] 1190 | let mut metadata = metadata.clone(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:1177:9 [INFO] [stdout] | [INFO] [stdout] 1177 | metadata: Metadata, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:1256:13 [INFO] [stdout] | [INFO] [stdout] 1256 | / Action::Update { [INFO] [stdout] 1257 | | metadata, data, id, .. [INFO] [stdout] 1258 | | } => (metadata, data, *id), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `existing_metadata` is shadowed [INFO] [stdout] --> src/interface.rs:1269:18 [INFO] [stdout] | [INFO] [stdout] 1269 | Some(existing_metadata) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:1264:13 [INFO] [stdout] | [INFO] [stdout] 1264 | let existing_metadata = >::get_metadata(id)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:1272:22 [INFO] [stdout] | [INFO] [stdout] 1272 | (StorageType::Public, StorageType::Public) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:1320:12 [INFO] [stdout] | [INFO] [stdout] 1320 | if let Action::Update { .. } = action { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:1362:9 [INFO] [stdout] | [INFO] [stdout] 1362 | Action::Add { metadata, .. } | Action::Update { metadata, .. } => metadata.updated_at(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/js.rs:128:30 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn entries(&self) -> Result, Vec)>, StoreError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JsVector` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/js.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 216 | pub fn len(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JsUnorderedSet` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/js.rs:330:5 [INFO] [stdout] | [INFO] [stdout] 330 | pub fn len(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/js.rs:687:30 [INFO] [stdout] | [INFO] [stdout] 687 | pub fn entries(&self) -> Result)>, StoreError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of the `unreachable!` macro [INFO] [stdout] --> src/logical_clock.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | None => unreachable!(), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreachable [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | clippy::unreachable, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/merge/registry.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | let _ = registry.insert(type_id, merge_fn); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/merge/registry.rs:92:10 [INFO] [stdout] | [INFO] [stdout] 92 | let _ = registry.insert(type_id, merge_fn); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/merge.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | CrdtType::GCounter => merge_g_counter(existing, incoming), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/snapshot.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | for (id, data) in &snapshot.entries { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/snapshot.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | let _ = S::storage_write(Key::Entry(*id), data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/snapshot.rs:159:14 [INFO] [stdout] | [INFO] [stdout] 159 | let _ = S::storage_write(Key::Entry(*id), data); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/snapshot.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | for (id, data) in &snapshot.indexes { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/snapshot.rs:164:9 [INFO] [stdout] | [INFO] [stdout] 164 | let _ = S::storage_write(Key::Index(*id), data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/snapshot.rs:164:14 [INFO] [stdout] | [INFO] [stdout] 164 | let _ = S::storage_write(Key::Index(*id), data); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` without a type annotation [INFO] [stdout] --> src/snapshot.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | let _ = S::storage_remove(key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider adding a type annotation [INFO] [stdout] --> src/snapshot.rs:193:14 [INFO] [stdout] | [INFO] [stdout] 193 | let _ = S::storage_remove(key); [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_untyped [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/store.rs:177:30 [INFO] [stdout] | [INFO] [stdout] 177 | .filter(|(scope, _)| *scope == SCOPE) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/store.rs:178:27 [INFO] [stdout] | [INFO] [stdout] 178 | .map(|(_, key)| *key) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/collections/lww_register.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | pub fn merge(&mut self, other: &Self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `merge` defined here [INFO] [stdout] --> src/collections/crdt_impls.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | fn merge(&mut self, other: &Self) -> Result<(), MergeError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | clippy::same_name_method, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn element(&self) -> &Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element` defined here [INFO] [stdout] --> src/js.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn element_mut(&mut self) -> &mut Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element_mut` defined here [INFO] [stdout] --> src/js.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:177:17 [INFO] [stdout] | [INFO] [stdout] 177 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:321:5 [INFO] [stdout] | [INFO] [stdout] 321 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:291:17 [INFO] [stdout] | [INFO] [stdout] 291 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:436:5 [INFO] [stdout] | [INFO] [stdout] 436 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:406:17 [INFO] [stdout] | [INFO] [stdout] 406 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:514:5 [INFO] [stdout] | [INFO] [stdout] 514 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:487:17 [INFO] [stdout] | [INFO] [stdout] 487 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:604:5 [INFO] [stdout] | [INFO] [stdout] 604 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:575:17 [INFO] [stdout] | [INFO] [stdout] 575 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:616:5 [INFO] [stdout] | [INFO] [stdout] 616 | pub fn element(&self) -> &Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element` defined here [INFO] [stdout] --> src/js.rs:575:17 [INFO] [stdout] | [INFO] [stdout] 575 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:622:5 [INFO] [stdout] | [INFO] [stdout] 622 | pub fn element_mut(&mut self) -> &mut Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element_mut` defined here [INFO] [stdout] --> src/js.rs:575:17 [INFO] [stdout] | [INFO] [stdout] 575 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:753:5 [INFO] [stdout] | [INFO] [stdout] 753 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:724:17 [INFO] [stdout] | [INFO] [stdout] 724 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:765:5 [INFO] [stdout] | [INFO] [stdout] 765 | pub fn element(&self) -> &Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element` defined here [INFO] [stdout] --> src/js.rs:724:17 [INFO] [stdout] | [INFO] [stdout] 724 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:771:5 [INFO] [stdout] | [INFO] [stdout] 771 | pub fn element_mut(&mut self) -> &mut Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element_mut` defined here [INFO] [stdout] --> src/js.rs:724:17 [INFO] [stdout] | [INFO] [stdout] 724 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/js.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 187 | pub fn new() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | missing_docs, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/js.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | pub fn new() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:321:5 [INFO] [stdout] | [INFO] [stdout] 321 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/js.rs:416:5 [INFO] [stdout] | [INFO] [stdout] 416 | pub fn new() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:436:5 [INFO] [stdout] | [INFO] [stdout] 436 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:440:5 [INFO] [stdout] | [INFO] [stdout] 440 | pub fn set(&mut self, value: Option<&[u8]>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:448:5 [INFO] [stdout] | [INFO] [stdout] 448 | pub fn get(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:452:5 [INFO] [stdout] | [INFO] [stdout] 452 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:457:5 [INFO] [stdout] | [INFO] [stdout] 457 | pub fn timestamp(&self) -> crate::logical_clock::HybridTimestamp { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/js.rs:497:5 [INFO] [stdout] | [INFO] [stdout] 497 | pub fn new() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:514:5 [INFO] [stdout] | [INFO] [stdout] 514 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/env.rs:129:10 [INFO] [stdout] | [INFO] [stdout] 129 | #[expect(clippy::missing_const_for_fn, reason = "Cannot be const here")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: Cannot be const here [INFO] [stdout] = note: `#[warn(unfulfilled_lint_expectations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/env.rs:197:10 [INFO] [stdout] | [INFO] [stdout] 197 | #[expect(clippy::missing_const_for_fn, reason = "Cannot be const here")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: Cannot be const here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/env.rs:206:10 [INFO] [stdout] | [INFO] [stdout] 206 | #[expect(clippy::missing_const_for_fn, reason = "Cannot be const here")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: Cannot be const here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/env.rs:215:10 [INFO] [stdout] | [INFO] [stdout] 215 | #[expect(clippy::missing_const_for_fn, reason = "Cannot be const here")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: Cannot be const here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/address.rs:68:14 [INFO] [stdout] | [INFO] [stdout] 68 | #[expect(clippy::use_debug, reason = "fine for now")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: fine for now [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/collections/root.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | clippy::unwrap_in_result, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: fatal error if it happens [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/collections.rs:391:9 [INFO] [stdout] | [INFO] [stdout] 391 | clippy::unwrap_in_result, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: fatal error if it happens [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `collection_name` [INFO] [stdout] --> src/tests/index.rs:165:13 [INFO] [stdout] | [INFO] [stdout] 165 | let collection_name = "Books"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `child_collection_name` [INFO] [stdout] --> src/tests/index.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | let child_collection_name = "Books"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_child_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `grandchild_collection_name` [INFO] [stdout] --> src/tests/index.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | let grandchild_collection_name = "Pages"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grandchild_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `greatgrandchild_collection_name` [INFO] [stdout] --> src/tests/index.rs:230:13 [INFO] [stdout] | [INFO] [stdout] 230 | let greatgrandchild_collection_name = "Paragraphs"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_greatgrandchild_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `collection_name` [INFO] [stdout] --> src/tests/index.rs:307:13 [INFO] [stdout] | [INFO] [stdout] 307 | let collection_name = "Books"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `collection_name` [INFO] [stdout] --> src/tests/index.rs:413:13 [INFO] [stdout] | [INFO] [stdout] 413 | let collection_name = "Pages"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `collection_name` [INFO] [stdout] --> src/tests/index.rs:468:13 [INFO] [stdout] | [INFO] [stdout] 468 | let collection_name = "Books"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `collection_name` [INFO] [stdout] --> src/tests/index.rs:489:13 [INFO] [stdout] | [INFO] [stdout] 489 | let collection_name = "Books"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `collection_name` [INFO] [stdout] --> src/tests/index.rs:528:13 [INFO] [stdout] | [INFO] [stdout] 528 | let collection_name = "Books"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `collection` [INFO] [stdout] --> src/tests/index.rs:612:13 [INFO] [stdout] | [INFO] [stdout] 612 | let collection = "children"; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `collection_name` [INFO] [stdout] --> src/tests/index.rs:687:13 [INFO] [stdout] | [INFO] [stdout] 687 | let collection_name = "Children"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `child_collection_name` [INFO] [stdout] --> src/tests/index.rs:723:13 [INFO] [stdout] | [INFO] [stdout] 723 | let child_collection_name = "Books"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_child_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `grandchild_collection_name` [INFO] [stdout] --> src/tests/index.rs:724:13 [INFO] [stdout] | [INFO] [stdout] 724 | let grandchild_collection_name = "Pages"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grandchild_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `greatgrandchild_collection_name` [INFO] [stdout] --> src/tests/index.rs:725:13 [INFO] [stdout] | [INFO] [stdout] 725 | let greatgrandchild_collection_name = "Paragraphs"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_greatgrandchild_collection_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `incoming_created_at` [INFO] [stdout] --> src/interface.rs:907:13 [INFO] [stdout] | [INFO] [stdout] 907 | let incoming_created_at = metadata.created_at; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_incoming_created_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `poisoned` [INFO] [stdout] --> src/merge/registry.rs:136:58 [INFO] [stdout] | [INFO] [stdout] 136 | let registry = MERGE_REGISTRY.read().unwrap_or_else(|poisoned| { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_poisoned` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `collections::Collection<(K, V), S>` is more private than the item `collections::unordered_map::UnorderedMap::inner` [INFO] [stdout] --> src/collections/unordered_map.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub(crate) inner: Collection<(K, V), S>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `collections::unordered_map::UnorderedMap::inner` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `collections::Collection<(K, V), S>` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/collections.rs:92:1 [INFO] [stdout] | [INFO] [stdout] 92 | struct Collection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Entries` is never constructed [INFO] [stdout] --> src/collections.rs:119:8 [INFO] [stdout] | [INFO] [stdout] 119 | struct Entries { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new_with_field_name` and `reassign_deterministic_id` are never used [INFO] [stdout] --> src/collections.rs:185:19 [INFO] [stdout] | [INFO] [stdout] 139 | impl Collection { [INFO] [stdout] | ------------------------------------------------------------------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 185 | pub(crate) fn new_with_field_name(parent_id: Option, field_name: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | pub(crate) fn reassign_deterministic_id(&mut self, field_name: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/action.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | Action::Add { id, .. } => *id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | clippy::pattern_type_mismatch, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/action.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | / Action::Add { [INFO] [stdout] 147 | | id, [INFO] [stdout] 148 | | data, [INFO] [stdout] 149 | | ancestors, [INFO] [stdout] ... | [INFO] [stdout] 156 | | metadata, [INFO] [stdout] 157 | | } => { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/action.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | StorageType::Public => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/address.rs:131:16 [INFO] [stdout] | [INFO] [stdout] 131 | if str.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!str.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: doc list item overindented [INFO] [stdout] --> src/collections/counter.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | /// When `true`, acts as PN-Counter (supports decrement). [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `map_err(|_|...` wildcard pattern discards the original error [INFO] [stdout] --> src/collections/counter.rs:414:58 [INFO] [stdout] | [INFO] [stdout] 414 | let count_i64 = i64::try_from(count).map_err(|_| { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider storing the original error as a source in the new error, or silence this warning using an ignored identifier (`.map_err(|_foo| ...`) [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_err_ignore [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | clippy::map_err_ignore, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `map_err(|_|...` wildcard pattern discards the original error [INFO] [stdout] --> src/collections/counter.rs:432:58 [INFO] [stdout] | [INFO] [stdout] 432 | let count_i64 = i64::try_from(count).map_err(|_| { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider storing the original error as a source in the new error, or silence this warning using an ignored identifier (`.map_err(|_foo| ...`) [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_err_ignore [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:480:37 [INFO] [stdout] | [INFO] [stdout] 480 | let mut counter = Root::new(|| GCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `GCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:498:33 [INFO] [stdout] | [INFO] [stdout] 498 | let counter = Root::new(|| GCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `GCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:505:37 [INFO] [stdout] | [INFO] [stdout] 505 | let mut counter = Root::new(|| GCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `GCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:521:37 [INFO] [stdout] | [INFO] [stdout] 521 | let mut counter = Root::new(|| Counter::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Counter::::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:536:37 [INFO] [stdout] | [INFO] [stdout] 536 | let mut counter = Root::new(|| PNCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `PNCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:569:37 [INFO] [stdout] | [INFO] [stdout] 569 | let mut counter = Root::new(|| PNCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `PNCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:603:37 [INFO] [stdout] | [INFO] [stdout] 603 | let mut counter = Root::new(|| Counter::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Counter::::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:618:33 [INFO] [stdout] | [INFO] [stdout] 618 | let counter = Root::new(|| PNCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `PNCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:627:37 [INFO] [stdout] | [INFO] [stdout] 627 | let mut counter = Root::new(|| GCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `GCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:652:37 [INFO] [stdout] | [INFO] [stdout] 652 | let mut counter = Root::new(|| PNCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `PNCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:670:37 [INFO] [stdout] | [INFO] [stdout] 670 | let mut counter = Root::new(|| PNCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `PNCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:693:37 [INFO] [stdout] | [INFO] [stdout] 693 | let mut counter = Root::new(|| PNCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `PNCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:718:37 [INFO] [stdout] | [INFO] [stdout] 718 | let mut counter = Root::new(|| GCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `GCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/counter.rs:735:37 [INFO] [stdout] | [INFO] [stdout] 735 | let mut counter = Root::new(|| PNCounter::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `PNCounter::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/unordered_map.rs:198:17 [INFO] [stdout] | [INFO] [stdout] 198 | let (_, v) = &mut *entry; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&mut _` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UnorderedMap` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/collections/unordered_map.rs:232:5 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn len(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `iter` is shadowed [INFO] [stdout] --> src/collections/unordered_map.rs:499:13 [INFO] [stdout] | [INFO] [stdout] 499 | let iter = iter.into_iter().map(|(k, v)| { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/unordered_map.rs:496:58 [INFO] [stdout] | [INFO] [stdout] 496 | fn extend>(&mut self, iter: I) { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | clippy::shadow_reuse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> src/collections/unordered_map.rs:569:1 [INFO] [stdout] | [INFO] [stdout] 569 | / pub enum Entry<'a, K, V, S> [INFO] [stdout] 570 | | where [INFO] [stdout] 571 | | K: BorshSerialize + BorshDeserialize, [INFO] [stdout] 572 | | V: BorshSerialize + BorshDeserialize, [INFO] [stdout] ... | [INFO] [stdout] 576 | | Occupied(OccupiedEntry<'a, K, V, S>), [INFO] [stdout] | | ------------------------------------ the largest variant contains at least 329 bytes [INFO] [stdout] 577 | | /// A vacant entry. [INFO] [stdout] 578 | | Vacant(VacantEntry<'a, K, V, S>), [INFO] [stdout] | | -------------------------------- the second-largest variant contains at least 8 bytes [INFO] [stdout] 579 | | } [INFO] [stdout] | |_^ the entire enum is at least 329 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] 576 - Occupied(OccupiedEntry<'a, K, V, S>), [INFO] [stdout] 576 + Occupied(Box>), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:722:33 [INFO] [stdout] | [INFO] [stdout] 722 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:771:33 [INFO] [stdout] | [INFO] [stdout] 771 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/collections/unordered_map.rs:800:17 [INFO] [stdout] | [INFO] [stdout] 800 | assert!(!map [INFO] [stdout] | _________________^ [INFO] [stdout] 801 | | .insert("key".to_owned(), "new_value".to_owned()) [INFO] [stdout] 802 | | .expect("insert failed") [INFO] [stdout] 803 | | .is_none()); [INFO] [stdout] | |______________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 800 ~ assert!(map [INFO] [stdout] 801 + .insert("key".to_owned(), "new_value".to_owned()) [INFO] [stdout] 802 ~ .expect("insert failed").is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:794:33 [INFO] [stdout] | [INFO] [stdout] 794 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:813:33 [INFO] [stdout] | [INFO] [stdout] 813 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:829:33 [INFO] [stdout] | [INFO] [stdout] 829 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/collections/unordered_map.rs:860:17 [INFO] [stdout] | [INFO] [stdout] 860 | assert!(!map [INFO] [stdout] | _________________^ [INFO] [stdout] 861 | | .insert("key2".to_owned(), "value3".to_owned()) [INFO] [stdout] 862 | | .expect("insert failed") [INFO] [stdout] 863 | | .is_none()); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 860 ~ assert!(map [INFO] [stdout] 861 + .insert("key2".to_owned(), "value3".to_owned()) [INFO] [stdout] 862 ~ .expect("insert failed").is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:848:33 [INFO] [stdout] | [INFO] [stdout] 848 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:877:33 [INFO] [stdout] | [INFO] [stdout] 877 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/collections/unordered_map.rs:884:9 [INFO] [stdout] | [INFO] [stdout] 884 | assert_eq!(map.contains("key").expect("contains failed"), 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] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 884 - assert_eq!(map.contains("key").expect("contains failed"), true); [INFO] [stdout] 884 + assert!(map.contains("key").expect("contains failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/collections/unordered_map.rs:885:9 [INFO] [stdout] | [INFO] [stdout] 885 | assert_eq!(map.contains("nonexistent").expect("contains failed"), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 885 - assert_eq!(map.contains("nonexistent").expect("contains failed"), false); [INFO] [stdout] 885 + assert!(!map.contains("nonexistent").expect("contains failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/collections/unordered_map.rs:900:17 [INFO] [stdout] | [INFO] [stdout] 900 | assert!(!map [INFO] [stdout] | _________________^ [INFO] [stdout] 901 | | .insert("key2".to_owned(), "value3".to_owned()) [INFO] [stdout] 902 | | .expect("insert failed") [INFO] [stdout] 903 | | .is_none()); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 900 ~ assert!(map [INFO] [stdout] 901 + .insert("key2".to_owned(), "value3".to_owned()) [INFO] [stdout] 902 ~ .expect("insert failed").is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:890:33 [INFO] [stdout] | [INFO] [stdout] 890 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:914:33 [INFO] [stdout] | [INFO] [stdout] 914 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:945:33 [INFO] [stdout] | [INFO] [stdout] 945 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:980:33 [INFO] [stdout] | [INFO] [stdout] 980 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/collections/unordered_map.rs:1018:9 [INFO] [stdout] | [INFO] [stdout] 1018 | assert_eq!(called, false); // Verify closure was not executed [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] 1018 - assert_eq!(called, false); // Verify closure was not executed [INFO] [stdout] 1018 + assert!(!called); // Verify closure was not executed [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:1025:33 [INFO] [stdout] | [INFO] [stdout] 1025 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `old_val` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/unordered_map.rs:1049:13 [INFO] [stdout] | [INFO] [stdout] 1049 | let old_val = if let Ok(Entry::Occupied(entry)) = map.entry("key3".to_owned()) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/unordered_map.rs:1039:13 [INFO] [stdout] | [INFO] [stdout] 1039 | let old_val = if let Ok(Entry::Occupied(mut entry)) = map.entry("key2".to_owned()) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | clippy::shadow_unrelated, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_map.rs:1112:40 [INFO] [stdout] | [INFO] [stdout] 1112 | let mut parent_map = Root::new(|| UnorderedMap::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UnorderedSet` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/collections/unordered_set.rs:171:5 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn len(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `iter` is shadowed [INFO] [stdout] --> src/collections/unordered_set.rs:324:13 [INFO] [stdout] | [INFO] [stdout] 324 | let iter = iter.into_iter().map(|v| { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/unordered_set.rs:321:53 [INFO] [stdout] | [INFO] [stdout] 321 | fn extend>(&mut self, iter: I) { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_set.rs:354:33 [INFO] [stdout] | [INFO] [stdout] 354 | let mut set = Root::new(|| UnorderedSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedSet::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/collections/unordered_set.rs:358:9 [INFO] [stdout] | [INFO] [stdout] 358 | / assert_eq!( [INFO] [stdout] 359 | | set.contains(&"value1".to_owned()).expect("contains failed"), [INFO] [stdout] 360 | | true [INFO] [stdout] 361 | | ); [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] 358 ~ assert!( [INFO] [stdout] 359 ~ set.contains(&"value1".to_owned()).expect("contains failed") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/collections/unordered_set.rs:366:9 [INFO] [stdout] | [INFO] [stdout] 366 | assert_eq!(set.contains("value3").expect("get failed"), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 366 - assert_eq!(set.contains("value3").expect("get failed"), false); [INFO] [stdout] 366 + assert!(!set.contains("value3").expect("get failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/collections/unordered_set.rs:367:9 [INFO] [stdout] | [INFO] [stdout] 367 | assert_eq!(set.contains("value2").expect("get failed"), 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] 367 - assert_eq!(set.contains("value2").expect("get failed"), true); [INFO] [stdout] 367 + assert!(set.contains("value2").expect("get failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/collections/unordered_set.rs:369:9 [INFO] [stdout] | [INFO] [stdout] 369 | / assert_eq!( [INFO] [stdout] 370 | | set.remove("value1").expect("error while removing key"), [INFO] [stdout] 371 | | true [INFO] [stdout] 372 | | ); [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] 369 ~ assert!( [INFO] [stdout] 370 ~ set.remove("value1").expect("error while removing key") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/collections/unordered_set.rs:373:9 [INFO] [stdout] | [INFO] [stdout] 373 | / assert_eq!( [INFO] [stdout] 374 | | set.remove("value3").expect("error while removing key"), [INFO] [stdout] 375 | | false [INFO] [stdout] 376 | | ); [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] 373 ~ assert!( [INFO] [stdout] 374 ~ !set.remove("value3").expect("error while removing key") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_set.rs:381:33 [INFO] [stdout] | [INFO] [stdout] 381 | let mut set = Root::new(|| UnorderedSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedSet::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_set.rs:396:33 [INFO] [stdout] | [INFO] [stdout] 396 | let mut set = Root::new(|| UnorderedSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedSet::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/collections/unordered_set.rs:406:9 [INFO] [stdout] | [INFO] [stdout] 406 | assert_eq!(set.contains("value1").expect("contains failed"), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 406 - assert_eq!(set.contains("value1").expect("contains failed"), false); [INFO] [stdout] 406 + assert!(!set.contains("value1").expect("contains failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/collections/unordered_set.rs:407:9 [INFO] [stdout] | [INFO] [stdout] 407 | assert_eq!(set.contains("value2").expect("contains failed"), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 407 - assert_eq!(set.contains("value2").expect("contains failed"), false); [INFO] [stdout] 407 + assert!(!set.contains("value2").expect("contains failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/unordered_set.rs:412:33 [INFO] [stdout] | [INFO] [stdout] 412 | let mut set = Root::new(|| UnorderedSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedSet::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `items` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/unordered_set.rs:424:13 [INFO] [stdout] | [INFO] [stdout] 424 | let items: Vec = set.iter().expect("items failed").collect(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/unordered_set.rs:417:13 [INFO] [stdout] | [INFO] [stdout] 417 | let items: Vec = set.iter().expect("items failed").collect(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `last` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/vector.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | let last = entry.remove()?; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:137:18 [INFO] [stdout] | [INFO] [stdout] 137 | let Some(last) = self.inner.last()? else { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `iter` is shadowed [INFO] [stdout] --> src/collections/vector.rs:389:13 [INFO] [stdout] | [INFO] [stdout] 389 | let iter = iter.into_iter().map(|v| (None, v)); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:388:53 [INFO] [stdout] | [INFO] [stdout] 388 | fn extend>(&mut self, iter: I) { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:415:36 [INFO] [stdout] | [INFO] [stdout] 415 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:425:36 [INFO] [stdout] | [INFO] [stdout] 425 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:428:9 [INFO] [stdout] | [INFO] [stdout] 428 | let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 428 - let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] 428 + vector.push(value.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:435:36 [INFO] [stdout] | [INFO] [stdout] 435 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:439:9 [INFO] [stdout] | [INFO] [stdout] 439 | let _ = vector.push(value1.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 439 - let _ = vector.push(value1.clone()).unwrap(); [INFO] [stdout] 439 + vector.push(value1.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:448:32 [INFO] [stdout] | [INFO] [stdout] 448 | let vector = Root::new(|| Vector::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:458:36 [INFO] [stdout] | [INFO] [stdout] 458 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:461:9 [INFO] [stdout] | [INFO] [stdout] 461 | let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 461 - let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] 461 + vector.push(value.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:469:36 [INFO] [stdout] | [INFO] [stdout] 469 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:473:9 [INFO] [stdout] | [INFO] [stdout] 473 | let _ = vector.push(value1.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 473 - let _ = vector.push(value1.clone()).unwrap(); [INFO] [stdout] 473 + vector.push(value1.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:474:9 [INFO] [stdout] | [INFO] [stdout] 474 | let _ = vector.push(value2.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 474 - let _ = vector.push(value2.clone()).unwrap(); [INFO] [stdout] 474 + vector.push(value2.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:481:36 [INFO] [stdout] | [INFO] [stdout] 481 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:484:9 [INFO] [stdout] | [INFO] [stdout] 484 | let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 484 - let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] 484 + vector.push(value.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:492:36 [INFO] [stdout] | [INFO] [stdout] 492 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:495:9 [INFO] [stdout] | [INFO] [stdout] 495 | let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 495 - let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] 495 + vector.push(value.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:502:36 [INFO] [stdout] | [INFO] [stdout] 502 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:504:9 [INFO] [stdout] | [INFO] [stdout] 504 | let _ = vector.push("apple".to_owned()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 504 - let _ = vector.push("apple".to_owned()).unwrap(); [INFO] [stdout] 504 + vector.push("apple".to_owned()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:505:9 [INFO] [stdout] | [INFO] [stdout] 505 | let _ = vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 505 - let _ = vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] 505 + vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:506:9 [INFO] [stdout] | [INFO] [stdout] 506 | let _ = vector.push("cherry".to_owned()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 506 - let _ = vector.push("cherry".to_owned()).unwrap(); [INFO] [stdout] 506 + vector.push("cherry".to_owned()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:507:9 [INFO] [stdout] | [INFO] [stdout] 507 | let _ = vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 507 - let _ = vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] 507 + vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `result` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/vector.rs:515:13 [INFO] [stdout] | [INFO] [stdout] 515 | let result: Vec = vector.find(|s| s.starts_with('z')).unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:510:13 [INFO] [stdout] | [INFO] [stdout] 510 | let result: Vec = vector.find(|s| s.starts_with('b')).unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `result` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/vector.rs:519:13 [INFO] [stdout] | [INFO] [stdout] 519 | let result: Vec = vector.find(|_| true).unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:515:13 [INFO] [stdout] | [INFO] [stdout] 515 | let result: Vec = vector.find(|s| s.starts_with('z')).unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:526:36 [INFO] [stdout] | [INFO] [stdout] 526 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:528:9 [INFO] [stdout] | [INFO] [stdout] 528 | let _ = vector.push("apple".to_owned()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 528 - let _ = vector.push("apple".to_owned()).unwrap(); [INFO] [stdout] 528 + vector.push("apple".to_owned()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:529:9 [INFO] [stdout] | [INFO] [stdout] 529 | let _ = vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 529 - let _ = vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] 529 + vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:530:9 [INFO] [stdout] | [INFO] [stdout] 530 | let _ = vector.push("cherry".to_owned()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 530 - let _ = vector.push("cherry".to_owned()).unwrap(); [INFO] [stdout] 530 + vector.push("cherry".to_owned()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:531:9 [INFO] [stdout] | [INFO] [stdout] 531 | let _ = vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 531 - let _ = vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] 531 + vector.push("banana".to_owned()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:532:9 [INFO] [stdout] | [INFO] [stdout] 532 | let _ = vector.push("apricot".to_owned()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 532 - let _ = vector.push("apricot".to_owned()).unwrap(); [INFO] [stdout] 532 + vector.push("apricot".to_owned()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `result` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/vector.rs:541:13 [INFO] [stdout] | [INFO] [stdout] 541 | let result: Vec = vector.filter(|s| s == "banana").unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:535:13 [INFO] [stdout] | [INFO] [stdout] 535 | let result: Vec = vector.filter(|s| s.starts_with('a')).unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `result` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/vector.rs:546:13 [INFO] [stdout] | [INFO] [stdout] 546 | let result: Vec = vector.filter(|s| s.starts_with('z')).unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:541:13 [INFO] [stdout] | [INFO] [stdout] 541 | let result: Vec = vector.filter(|s| s == "banana").unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `result` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/vector.rs:550:13 [INFO] [stdout] | [INFO] [stdout] 550 | let result: Vec = vector.filter(|_| true).unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:546:13 [INFO] [stdout] | [INFO] [stdout] 546 | let result: Vec = vector.filter(|s| s.starts_with('z')).unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:556:36 [INFO] [stdout] | [INFO] [stdout] 556 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:558:9 [INFO] [stdout] | [INFO] [stdout] 558 | let _ = vector.push(1u32).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 558 - let _ = vector.push(1u32).unwrap(); [INFO] [stdout] 558 + vector.push(1u32).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:559:9 [INFO] [stdout] | [INFO] [stdout] 559 | let _ = vector.push(5u32).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 559 - let _ = vector.push(5u32).unwrap(); [INFO] [stdout] 559 + vector.push(5u32).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:560:9 [INFO] [stdout] | [INFO] [stdout] 560 | let _ = vector.push(10u32).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 560 - let _ = vector.push(10u32).unwrap(); [INFO] [stdout] 560 + vector.push(10u32).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:561:9 [INFO] [stdout] | [INFO] [stdout] 561 | let _ = vector.push(15u32).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 561 - let _ = vector.push(15u32).unwrap(); [INFO] [stdout] 561 + vector.push(15u32).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:571:36 [INFO] [stdout] | [INFO] [stdout] 571 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:573:9 [INFO] [stdout] | [INFO] [stdout] 573 | let _ = vector.push(1u32).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 573 - let _ = vector.push(1u32).unwrap(); [INFO] [stdout] 573 + vector.push(1u32).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:574:9 [INFO] [stdout] | [INFO] [stdout] 574 | let _ = vector.push(5u32).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 574 - let _ = vector.push(5u32).unwrap(); [INFO] [stdout] 574 + vector.push(5u32).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:575:9 [INFO] [stdout] | [INFO] [stdout] 575 | let _ = vector.push(10u32).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 575 - let _ = vector.push(10u32).unwrap(); [INFO] [stdout] 575 + vector.push(10u32).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:576:9 [INFO] [stdout] | [INFO] [stdout] 576 | let _ = vector.push(15u32).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 576 - let _ = vector.push(15u32).unwrap(); [INFO] [stdout] 576 + vector.push(15u32).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/collections/vector.rs:577:9 [INFO] [stdout] | [INFO] [stdout] 577 | let _ = vector.push(20u32).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 577 - let _ = vector.push(20u32).unwrap(); [INFO] [stdout] 577 + vector.push(20u32).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `result` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/vector.rs:585:13 [INFO] [stdout] | [INFO] [stdout] 585 | let result: Vec = vector.filter(|&n| n % 2 == 0).unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:580:13 [INFO] [stdout] | [INFO] [stdout] 580 | let result: Vec = vector.filter(|&n| n > 7).unwrap().collect(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:592:32 [INFO] [stdout] | [INFO] [stdout] 592 | let vector = Root::new(|| Vector::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/vector.rs:606:36 [INFO] [stdout] | [INFO] [stdout] 606 | let mut vector = Root::new(|| Vector::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `result` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/vector.rs:630:13 [INFO] [stdout] | [INFO] [stdout] 630 | let result = super::validate_index_bounds(5); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:621:13 [INFO] [stdout] | [INFO] [stdout] 621 | let result = super::validate_index_bounds(usize::MAX); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `result` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/vector.rs:634:13 [INFO] [stdout] | [INFO] [stdout] 634 | let result = super::validate_index_bounds(15); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:630:13 [INFO] [stdout] | [INFO] [stdout] 630 | let result = super::validate_index_bounds(5); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `result` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections/vector.rs:638:13 [INFO] [stdout] | [INFO] [stdout] 638 | let result = super::validate_index_bounds(usize::MAX - 1); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/vector.rs:634:13 [INFO] [stdout] | [INFO] [stdout] 634 | let result = super::validate_index_bounds(15); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/collections/rga.rs:81:26 [INFO] [stdout] | [INFO] [stdout] 81 | .map_err(|e| borsh::io::Error::new(borsh::io::ErrorKind::Other, e))?; [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] 81 - .map_err(|e| borsh::io::Error::new(borsh::io::ErrorKind::Other, e))?; [INFO] [stdout] 81 + .map_err(|e| borsh::io::Error::other(e))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:231:23 [INFO] [stdout] | [INFO] [stdout] 231 | .map(|(id, _)| *id) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:257:13 [INFO] [stdout] | [INFO] [stdout] 257 | let (char_id, _) = ordered.get(pos).ok_or(StoreError::StorageError( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:273:32 [INFO] [stdout] | [INFO] [stdout] 273 | Ok(ordered.iter().map(|(_, c)| c.as_char()).collect()) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:309:23 [INFO] [stdout] | [INFO] [stdout] 309 | .map(|(id, _)| *id) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:356:13 [INFO] [stdout] | [INFO] [stdout] 356 | for (char_id, _) in &ordered[start..actual_end] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:381:26 [INFO] [stdout] | [INFO] [stdout] 381 | .filter(|(_, c)| c.left == current_left) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:382:26 [INFO] [stdout] | [INFO] [stdout] 382 | .filter(|(id, _)| !ordered.iter().any(|(placed_id, _)| placed_id == id)) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:382:56 [INFO] [stdout] | [INFO] [stdout] 382 | .filter(|(id, _)| !ordered.iter().any(|(placed_id, _)| placed_id == id)) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:388:29 [INFO] [stdout] | [INFO] [stdout] 388 | if let Some((next_id, next_char)) = chars [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:390:28 [INFO] [stdout] | [INFO] [stdout] 390 | .find(|(id, _)| !ordered.iter().any(|(placed_id, _)| placed_id == id)) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:390:58 [INFO] [stdout] | [INFO] [stdout] 390 | .find(|(id, _)| !ordered.iter().any(|(placed_id, _)| placed_id == id)) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:402:41 [INFO] [stdout] | [INFO] [stdout] 402 | candidates.sort_by_key(|(id, _)| std::cmp::Reverse(*id)); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/rga.rs:405:21 [INFO] [stdout] | [INFO] [stdout] 405 | let (next_id, next_char) = candidates[0]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/crdt_meta.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | MergeError::IncompatibleStates => write!(f, "Incompatible CRDT states"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/collections/crdt_meta.rs:145:28 [INFO] [stdout] | [INFO] [stdout] 145 | fn decompose(&self) -> Result, DecomposeError>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/crdt_meta.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | DecomposeError::MissingField(field) => write!(f, "Missing field: {}", field), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/composite_key.rs:216:13 [INFO] [stdout] | [INFO] [stdout] 216 | ParseError::MissingSeparator => write!(f, "Composite key missing separator '::'"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/crdt_impls.rs:65:30 [INFO] [stdout] | [INFO] [stdout] 65 | (Some(self_val), Some(other_val)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> src/collections/crdt_impls.rs:239:17 [INFO] [stdout] | [INFO] [stdout] 239 | / drop(self.chars.insert(key, char_data).map_err(|e| { [INFO] [stdout] 240 | | MergeError::StorageError(format!("Failed to insert char: {:?}", e)) [INFO] [stdout] 241 | | })?); [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `std::option::Option` [INFO] [stdout] --> src/collections/crdt_impls.rs:239:22 [INFO] [stdout] | [INFO] [stdout] 239 | drop(self.chars.insert(key, char_data).map_err(|e| { [INFO] [stdout] | ______________________^ [INFO] [stdout] 240 | | MergeError::StorageError(format!("Failed to insert char: {:?}", e)) [INFO] [stdout] 241 | | })?); [INFO] [stdout] | |___________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] = note: `#[warn(clippy::drop_non_drop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/collections/crdt_impls.rs:911:23 [INFO] [stdout] | [INFO] [stdout] 911 | let s: &str = &*reg; // Deref to &String, then &str [INFO] [stdout] | ^^^^^ help: try: `®` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/decompose_impls.rs:124:38 [INFO] [stdout] | [INFO] [stdout] 124 | indexed_entries.sort_by_key(|(index, _)| *index); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/decompose_impls.rs:157:33 [INFO] [stdout] | [INFO] [stdout] 157 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/decompose_impls.rs:169:38 [INFO] [stdout] | [INFO] [stdout] 169 | let mut original = Root::new(|| UnorderedMap::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/decompose_impls.rs:190:33 [INFO] [stdout] | [INFO] [stdout] 190 | let mut vec = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/decompose_impls.rs:203:38 [INFO] [stdout] | [INFO] [stdout] 203 | let mut original = Root::new(|| Vector::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/nested.rs:198:33 [INFO] [stdout] | [INFO] [stdout] 198 | let mut map = Root::new(|| UnorderedMap::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/nested.rs:210:33 [INFO] [stdout] | [INFO] [stdout] 210 | let mut map = Root::new(|| UnorderedMap::>::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::>::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/nested_map.rs:148:35 [INFO] [stdout] | [INFO] [stdout] 148 | let mut outer = Root::new(|| UnorderedMap::>::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::>::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/nested_map.rs:165:35 [INFO] [stdout] | [INFO] [stdout] 165 | let mut outer = Root::new(|| UnorderedMap::>::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::>::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/nested_map.rs:185:34 [INFO] [stdout] | [INFO] [stdout] 185 | let mut map1 = Root::new(|| UnorderedMap::>::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::>::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/nested_map.rs:209:35 [INFO] [stdout] | [INFO] [stdout] 209 | let mut outer = Root::new(|| UnorderedMap::>::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::>::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/nested_map.rs:235:35 [INFO] [stdout] | [INFO] [stdout] 235 | let mut outer = Root::new(|| UnorderedMap::>::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::>::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections/nested_map.rs:260:35 [INFO] [stdout] | [INFO] [stdout] 260 | let mut outer = Root::new(|| UnorderedMap::>::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::>::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `value` is shadowed [INFO] [stdout] --> src/collections/root.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | let value = value.get_or_insert_with(|| self.inner.get(id).unwrap().unwrap()); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/root.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | let mut value = self.value.borrow_mut(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `value` is shadowed [INFO] [stdout] --> src/collections/root.rs:83:13 [INFO] [stdout] | [INFO] [stdout] 83 | let value = unsafe { &mut *ptr::from_mut(value) }; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections/root.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | let value = value.get_or_insert_with(|| self.inner.get(id).unwrap().unwrap()); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/collections/root.rs:136:25 [INFO] [stdout] | [INFO] [stdout] 136 | / Action::Add { [INFO] [stdout] 137 | | id, data, metadata, .. [INFO] [stdout] 138 | | } [INFO] [stdout] 139 | | | Action::Update { [INFO] [stdout] 140 | | id, data, metadata, .. [INFO] [stdout] 141 | | } if id.is_root() => { [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections.rs:137:46 [INFO] [stdout] | [INFO] [stdout] 137 | static ROOT_ID: LazyLock = LazyLock::new(|| Id::root()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Id::root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/collections.rs:143:36 [INFO] [stdout] | [INFO] [stdout] 143 | let id = id.unwrap_or_else(|| Id::random()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Id::random` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `id` is shadowed [INFO] [stdout] --> src/collections.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | let id = id.unwrap_or_else(|| Id::random()); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:142:12 [INFO] [stdout] | [INFO] [stdout] 142 | fn new(id: Option) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `_ignored` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections.rs:259:13 [INFO] [stdout] | [INFO] [stdout] 259 | let _ignored = S::storage_remove(Key::Index(old_id)); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | let _ignored = S::storage_remove(Key::Entry(old_id)); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `_ignored` shadows a previous, unrelated binding [INFO] [stdout] --> src/collections.rs:296:13 [INFO] [stdout] | [INFO] [stdout] 296 | let _ignored = S::storage_remove(Key::Index(old_id)); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:295:13 [INFO] [stdout] | [INFO] [stdout] 295 | let _ignored = S::storage_remove(Key::Entry(old_id)); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `entry` is shadowed [INFO] [stdout] --> src/collections.rs:340:23 [INFO] [stdout] | [INFO] [stdout] 340 | Ok(entry.map(|entry| entry.item)) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:338:13 [INFO] [stdout] | [INFO] [stdout] 338 | let entry = >::find_by_id::>(id)?; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `entry` is shadowed [INFO] [stdout] --> src/collections.rs:350:23 [INFO] [stdout] | [INFO] [stdout] 350 | Ok(entry.map(|entry| EntryMut { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:348:13 [INFO] [stdout] | [INFO] [stdout] 348 | let entry = >::find_by_id::>(id)?; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `children` is shadowed [INFO] [stdout] --> src/collections.rs:418:13 [INFO] [stdout] | [INFO] [stdout] 418 | let children = unsafe { &mut *ptr::from_mut(children) }; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/collections.rs:415:13 [INFO] [stdout] | [INFO] [stdout] 415 | let children = cache.as_mut().expect("children"); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion has a constant value [INFO] [stdout] --> src/constants.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | assert!(FULL_RESYNC_THRESHOLD_NANOS > TOMBSTONE_RETENTION_NANOS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider moving this into a const block: `const { assert!(..) }` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] = note: `#[warn(clippy::assertions_on_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/delta.rs:82:17 [INFO] [stdout] | [INFO] [stdout] 82 | / Action::Add { [INFO] [stdout] 83 | | id, data, metadata, .. [INFO] [stdout] 84 | | } [INFO] [stdout] 85 | | | Action::Update { [INFO] [stdout] 86 | | id, data, metadata, .. [INFO] [stdout] 87 | | } => { [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/delta.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | hasher.update(&id_bytes); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `id_bytes` [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/delta.rs:96:35 [INFO] [stdout] | [INFO] [stdout] 96 | hasher.update(&id_bytes); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `id_bytes` [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] --> src/delta.rs:102:35 [INFO] [stdout] | [INFO] [stdout] 102 | hasher.update(&id_bytes); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `id_bytes` [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: type of pattern does not match the expression type [INFO] [stdout] --> src/delta.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 177 | None => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&mut _` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/delta.rs:190:37 [INFO] [stdout] | [INFO] [stdout] 190 | self.max_hlc.unwrap_or_else(|| env::hlc_timestamp()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `env::hlc_timestamp` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/delta.rs:347:9 [INFO] [stdout] | [INFO] [stdout] 347 | StorageType::Public | StorageType::Frozen => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/entities.rs:333:9 [INFO] [stdout] | [INFO] [stdout] 333 | &mut *self.metadata.updated_at [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut self.metadata.updated_at` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/entities.rs:407:1 [INFO] [stdout] | [INFO] [stdout] 407 | / impl Default for StorageType { [INFO] [stdout] 408 | | fn default() -> Self { [INFO] [stdout] 409 | | Self::Public [INFO] [stdout] 410 | | } [INFO] [stdout] 411 | | } [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] 392 + #[derive(Default)] [INFO] [stdout] 393 | pub enum StorageType { [INFO] [stdout] 394 | /// Public data, accessible to all members of context. [INFO] [stdout] 395 ~ #[default] [INFO] [stdout] 396 ~ Public, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:59:19 [INFO] [stdout] | [INFO] [stdout] 59 | storage_read: std::rc::Rc Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:60:20 [INFO] [stdout] | [INFO] [stdout] 60 | storage_write: std::rc::Rc bool>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:75:23 [INFO] [stdout] | [INFO] [stdout] 75 | storage_read: std::rc::Rc Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:76:24 [INFO] [stdout] | [INFO] [stdout] 76 | storage_write: std::rc::Rc bool>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:92:35 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn storage_read(&self) -> std::rc::Rc Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/env.rs:98:36 [INFO] [stdout] | [INFO] [stdout] 98 | pub fn storage_write(&self) -> std::rc::Rc bool> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/env.rs:234:1 [INFO] [stdout] | [INFO] [stdout] 234 | pub fn update_hlc(remote_ts: &HybridTimestamp) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] = note: `#[warn(clippy::result_unit_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `public_key` is shadowed [INFO] [stdout] --> src/env.rs:497:16 [INFO] [stdout] | [INFO] [stdout] 497 | let Ok(public_key) = VerifyingKey::from_bytes(public_key) else { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/env.rs:492:9 [INFO] [stdout] | [INFO] [stdout] 492 | public_key: &[u8; 32], [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `signature` is shadowed [INFO] [stdout] --> src/env.rs:501:13 [INFO] [stdout] | [INFO] [stdout] 501 | let signature = Signature::from_bytes(signature); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/env.rs:491:9 [INFO] [stdout] | [INFO] [stdout] 491 | signature: &[u8; 64], [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/error.rs:102:21 [INFO] [stdout] | [INFO] [stdout] 102 | let (pk, nonce) = &**data; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e1` is shadowed [INFO] [stdout] --> src/tests/index.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | let e1 = e1.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | let e1 = >>::get_index(root_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e1` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/index.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | let e1 = >>::get_index(root_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | let e1 = e1.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e2` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/index.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let e2 = >>::get_index(p1_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | let e2 = >>::get_index(p1_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e1` is shadowed [INFO] [stdout] --> src/tests/index.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | let e1 = e1.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | let e1 = >>::get_index(root_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e2` is shadowed [INFO] [stdout] --> src/tests/index.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | let e2 = e2.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let e2 = >>::get_index(p1_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e1` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/index.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let e1 = >>::get_index(root_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | let e1 = e1.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e2` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/index.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | let e2 = >>::get_index(p1_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | let e2 = e2.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e1` is shadowed [INFO] [stdout] --> src/tests/index.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | let e1 = e1.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let e1 = >>::get_index(root_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e2` is shadowed [INFO] [stdout] --> src/tests/index.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | let e2 = e2.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | let e2 = >>::get_index(p1_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e1` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/index.rs:126:13 [INFO] [stdout] | [INFO] [stdout] 126 | let e1 = >>::get_index(root_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | let e1 = e1.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e2` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/index.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | let e2 = >>::get_index(p1_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | let e2 = e2.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e1` is shadowed [INFO] [stdout] --> src/tests/index.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let e1 = e1.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:126:13 [INFO] [stdout] | [INFO] [stdout] 126 | let e1 = >>::get_index(root_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `e2` is shadowed [INFO] [stdout] --> src/tests/index.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | let e2 = e2.unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | let e2 = >>::get_index(p1_id).unwrap(); [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `root_index` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/index.rs:539:13 [INFO] [stdout] | [INFO] [stdout] 539 | let root_index = >::get_index(root_id).unwrap().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:522:13 [INFO] [stdout] | [INFO] [stdout] 522 | let root_index = >::get_index(root_id).unwrap().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `updated_root_index_with_greatgrandchild` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/index.rs:857:13 [INFO] [stdout] | [INFO] [stdout] 857 | let updated_root_index_with_greatgrandchild = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:821:13 [INFO] [stdout] | [INFO] [stdout] 821 | let updated_root_index_with_greatgrandchild = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `updated_child_index_with_greatgrandchild` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/index.rs:859:13 [INFO] [stdout] | [INFO] [stdout] 859 | let updated_child_index_with_greatgrandchild = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:823:13 [INFO] [stdout] | [INFO] [stdout] 823 | let updated_child_index_with_greatgrandchild = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `updated_grandchild_index_with_greatgrandchild` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/index.rs:861:13 [INFO] [stdout] | [INFO] [stdout] 861 | let updated_grandchild_index_with_greatgrandchild = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:825:13 [INFO] [stdout] | [INFO] [stdout] 825 | let updated_grandchild_index_with_greatgrandchild = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `updated_greatgrandchild_index` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/index.rs:865:13 [INFO] [stdout] | [INFO] [stdout] 865 | let updated_greatgrandchild_index = >::get_index(greatgrandchild_id) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/index.rs:829:13 [INFO] [stdout] | [INFO] [stdout] 829 | let updated_greatgrandchild_index = >::get_index(greatgrandchild_id) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/index.rs:166:16 [INFO] [stdout] | [INFO] [stdout] 166 | if let Some(children_vec) = children { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/index.rs:296:12 [INFO] [stdout] | [INFO] [stdout] 296 | Ok(parent_index [INFO] [stdout] | ____________^ [INFO] [stdout] 297 | | .children [INFO] [stdout] 298 | | .as_ref() [INFO] [stdout] 299 | | .map_or(false, |c| !c.is_empty())) [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] 299 - .map_or(false, |c| !c.is_empty())) [INFO] [stdout] 299 + .is_some_and(|c| !c.is_empty())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/index.rs:312:20 [INFO] [stdout] | [INFO] [stdout] 312 | if let Some(children) = &mut parent_index.children { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&mut _` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/index.rs:322:63 [INFO] [stdout] | [INFO] [stdout] 322 | ... new_child_hash = %hex::encode(&new_child_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `new_child_hash` [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] --> src/index.rs:343:50 [INFO] [stdout] | [INFO] [stdout] 343 | old_full_hash = %hex::encode(&old_full_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `old_full_hash` [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] --> src/index.rs:344:50 [INFO] [stdout] | [INFO] [stdout] 344 | new_full_hash = %hex::encode(&parent_index.full_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `parent_index.full_hash` [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: type of pattern does not match the expression type [INFO] [stdout] --> src/index.rs:405:16 [INFO] [stdout] | [INFO] [stdout] 405 | if let Some(children) = &mut parent_index.children { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&mut _` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `updated_at` is shadowed [INFO] [stdout] --> src/index.rs:449:21 [INFO] [stdout] | [INFO] [stdout] 449 | if let Some(updated_at) = updated_at { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/index.rs:442:9 [INFO] [stdout] | [INFO] [stdout] 442 | updated_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/index.rs:468:45 [INFO] [stdout] | [INFO] [stdout] 468 | old_own_hash = %hex::encode(&old_own_hash), [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `old_own_hash` [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] --> src/index.rs:469:45 [INFO] [stdout] | [INFO] [stdout] 469 | new_own_hash = %hex::encode(&merkle_hash), [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `merkle_hash` [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] --> src/index.rs:470:46 [INFO] [stdout] | [INFO] [stdout] 470 | old_full_hash = %hex::encode(&old_full_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `old_full_hash` [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] --> src/index.rs:471:46 [INFO] [stdout] | [INFO] [stdout] 471 | new_full_hash = %hex::encode(&index.full_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `index.full_hash` [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: `retrieved` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/interface.rs:279:13 [INFO] [stdout] | [INFO] [stdout] 279 | let retrieved = MainInterface::find_by_id::(page.id()).unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/interface.rs:265:13 [INFO] [stdout] | [INFO] [stdout] 265 | let retrieved = MainInterface::find_by_id::(page.id()).unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/tests/interface.rs:589:62 [INFO] [stdout] | [INFO] [stdout] 589 | let entry_ids: Vec<_> = snapshot.entries.iter().map(|(id, _)| *id).collect(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/tests/interface.rs:649:62 [INFO] [stdout] | [INFO] [stdout] 649 | let index_ids: Vec<_> = snapshot.indexes.iter().map(|(id, _)| *id).collect(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/tests/interface.rs:662:72 [INFO] [stdout] | [INFO] [stdout] 662 | let full_index_ids: Vec<_> = full_snapshot.indexes.iter().map(|(id, _)| *id).collect(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/tests/interface.rs:834:17 [INFO] [stdout] | [INFO] [stdout] 834 | / if let Some(ref mut sig_data) = signature_data { [INFO] [stdout] 835 | | sig_data.signature[0] ^= 0xFF; // Flip bits [INFO] [stdout] 836 | | sig_data.signature[31] ^= 0xFF; [INFO] [stdout] 837 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/tests/interface.rs:830:17 [INFO] [stdout] | [INFO] [stdout] 830 | ref mut signature_data, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ replace this binding [INFO] [stdout] ... [INFO] [stdout] 834 | if let Some(ref mut sig_data) = signature_data { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ with this pattern, prefixed by `signature_data: ` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/tests/interface.rs:834:24 [INFO] [stdout] | [INFO] [stdout] 834 | if let Some(ref mut sig_data) = signature_data { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&mut _` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `serialized` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/interface.rs:1014:17 [INFO] [stdout] | [INFO] [stdout] 1014 | let serialized = to_vec(&page).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/interface.rs:1003:13 [INFO] [stdout] | [INFO] [stdout] 1003 | let serialized = to_vec(&page).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref mut metadata` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/interface.rs:1537:21 [INFO] [stdout] | [INFO] [stdout] 1537 | ref mut metadata, .. [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/interface.rs:1514:13 [INFO] [stdout] | [INFO] [stdout] 1514 | let metadata = Metadata { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::io::Error` [INFO] [stdout] --> src/interface.rs:81:79 [INFO] [stdout] | [INFO] [stdout] 81 | let data = to_vec(child).map_err(|e| StorageError::SerializationError(e.into()))?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | / Action::Add { [INFO] [stdout] 118 | | metadata, data, id, .. [INFO] [stdout] 119 | | } [INFO] [stdout] 120 | | | Action::Update { [INFO] [stdout] 121 | | metadata, data, id, .. [INFO] [stdout] 122 | | } => { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:126:21 [INFO] [stdout] | [INFO] [stdout] 126 | / StorageType::User { [INFO] [stdout] 127 | | owner, [INFO] [stdout] 128 | | signature_data, [INFO] [stdout] 129 | | } => { [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:214:29 [INFO] [stdout] | [INFO] [stdout] 214 | / ... StorageType::User { [INFO] [stdout] 215 | | ... owner, [INFO] [stdout] 216 | | ... signature_data, [INFO] [stdout] 217 | | ... } => { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `parent` is shadowed [INFO] [stdout] --> src/interface.rs:289:25 [INFO] [stdout] | [INFO] [stdout] 289 | let parent = parent.replace(this); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:287:21 [INFO] [stdout] | [INFO] [stdout] 287 | let mut parent = None; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `parent` is shadowed [INFO] [stdout] --> src/interface.rs:299:30 [INFO] [stdout] | [INFO] [stdout] 299 | let Some(parent) = parent else { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:289:25 [INFO] [stdout] | [INFO] [stdout] 289 | let parent = parent.replace(this); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `parent` is shadowed [INFO] [stdout] --> src/interface.rs:323:40 [INFO] [stdout] | [INFO] [stdout] 323 | } else if let Some(parent) = parent { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:287:21 [INFO] [stdout] | [INFO] [stdout] 287 | let mut parent = None; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `parent` is shadowed [INFO] [stdout] --> src/interface.rs:358:29 [INFO] [stdout] | [INFO] [stdout] 358 | if let Some(parent) = parent { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:287:21 [INFO] [stdout] | [INFO] [stdout] 287 | let mut parent = None; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `_ignored` shadows a previous, unrelated binding [INFO] [stdout] --> src/interface.rs:428:13 [INFO] [stdout] | [INFO] [stdout] 428 | let _ignored = >::mark_deleted(id, deleted_at); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:427:13 [INFO] [stdout] | [INFO] [stdout] 427 | let _ignored = S::storage_remove(Key::Entry(id)); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `parent_id` is shadowed [INFO] [stdout] --> src/interface.rs:433:21 [INFO] [stdout] | [INFO] [stdout] 433 | if let Some(parent_id) = parent_id { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:424:13 [INFO] [stdout] | [INFO] [stdout] 424 | let parent_id = >::get_parent_id(id)?; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `local_metadata` is shadowed [INFO] [stdout] --> src/interface.rs:504:13 [INFO] [stdout] | [INFO] [stdout] 504 | let local_metadata = local_metadata.ok_or(StorageError::IndexNotFound(id))?; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:488:13 [INFO] [stdout] | [INFO] [stdout] 488 | let local_metadata = >::get_metadata(id)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `foreign_entity_data` is shadowed [INFO] [stdout] --> src/interface.rs:517:22 [INFO] [stdout] | [INFO] [stdout] 517 | Some(foreign_entity_data) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:481:9 [INFO] [stdout] | [INFO] [stdout] 481 | foreign_entity_data: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `id` shadows a previous, unrelated binding [INFO] [stdout] --> src/interface.rs:587:21 [INFO] [stdout] | [INFO] [stdout] 587 | for id in foreign_child_map.keys() { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:486:13 [INFO] [stdout] | [INFO] [stdout] 486 | let id = foreign_index_data.id; [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:641:20 [INFO] [stdout] | [INFO] [stdout] 641 | if let Action::Compare { .. } = &action { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `id` is shadowed [INFO] [stdout] --> src/interface.rs:716:13 [INFO] [stdout] | [INFO] [stdout] 716 | let id = id.unwrap_or_else(Id::root); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:715:37 [INFO] [stdout] | [INFO] [stdout] 715 | pub fn generate_comparison_data(id: Option) -> Result { [INFO] [stdout] | ^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `root` is shadowed [INFO] [stdout] --> src/interface.rs:834:32 [INFO] [stdout] | [INFO] [stdout] 834 | let hash = if let Some(root) = root { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:830:33 [INFO] [stdout] | [INFO] [stdout] 830 | pub fn commit_root(root: Option) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::io::Error` [INFO] [stdout] --> src/interface.rs:843:83 [INFO] [stdout] | [INFO] [stdout] 843 | let data = to_vec(&root).map_err(|e| StorageError::SerializationError(e.into()))?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `hash` is shadowed [INFO] [stdout] --> src/interface.rs:850:21 [INFO] [stdout] | [INFO] [stdout] 850 | if let Some(hash) = hash { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:834:13 [INFO] [stdout] | [INFO] [stdout] 834 | let hash = if let Some(root) = root { [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::io::Error` [INFO] [stdout] --> src/interface.rs:882:80 [INFO] [stdout] | [INFO] [stdout] 882 | let data = to_vec(entity).map_err(|e| StorageError::SerializationError(e.into()))?; [INFO] [stdout] | ^^^^^^^^ help: consider removing `.into()`: `e` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:914:33 [INFO] [stdout] | [INFO] [stdout] 914 | let final_data = if let Some(last_metadata) = &last_metadata { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `last_metadata` is shadowed [INFO] [stdout] --> src/interface.rs:914:38 [INFO] [stdout] | [INFO] [stdout] 914 | let final_data = if let Some(last_metadata) = &last_metadata { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:913:13 [INFO] [stdout] | [INFO] [stdout] 913 | let last_metadata = >::get_metadata(id)?; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/interface.rs:932:54 [INFO] [stdout] | [INFO] [stdout] 932 | existing_hash = %hex::encode(&existing_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `existing_hash` [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] --> src/interface.rs:934:54 [INFO] [stdout] | [INFO] [stdout] 934 | incoming_hash = %hex::encode(&incoming_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `incoming_hash` [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] --> src/interface.rs:951:52 [INFO] [stdout] | [INFO] [stdout] 951 | merged_hash = %hex::encode(&merged_hash), [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `merged_hash` [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] --> src/interface.rs:962:54 [INFO] [stdout] | [INFO] [stdout] 962 | incoming_hash = %hex::encode(&incoming_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `incoming_hash` [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] --> src/interface.rs:1003:50 [INFO] [stdout] | [INFO] [stdout] 1003 | incoming_hash = %hex::encode(&incoming_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `incoming_hash` [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] --> src/interface.rs:1019:41 [INFO] [stdout] | [INFO] [stdout] 1019 | own_hash = %hex::encode(&own_hash), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `own_hash` [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] --> src/interface.rs:1020:42 [INFO] [stdout] | [INFO] [stdout] 1020 | full_hash = %hex::encode(&full_hash), [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `full_hash` [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: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:1102:13 [INFO] [stdout] | [INFO] [stdout] 1102 | let Some(crdt_type) = &metadata.crdt_type else { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `mut metadata` is shadowed [INFO] [stdout] --> src/interface.rs:1190:17 [INFO] [stdout] | [INFO] [stdout] 1190 | let mut metadata = metadata.clone(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:1177:9 [INFO] [stdout] | [INFO] [stdout] 1177 | metadata: Metadata, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:1256:13 [INFO] [stdout] | [INFO] [stdout] 1256 | / Action::Update { [INFO] [stdout] 1257 | | metadata, data, id, .. [INFO] [stdout] 1258 | | } => (metadata, data, *id), [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `existing_metadata` is shadowed [INFO] [stdout] --> src/interface.rs:1269:18 [INFO] [stdout] | [INFO] [stdout] 1269 | Some(existing_metadata) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/interface.rs:1264:13 [INFO] [stdout] | [INFO] [stdout] 1264 | let existing_metadata = >::get_metadata(id)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:1272:22 [INFO] [stdout] | [INFO] [stdout] 1272 | (StorageType::Public, StorageType::Public) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:1320:12 [INFO] [stdout] | [INFO] [stdout] 1320 | if let Action::Update { .. } = action { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/interface.rs:1362:9 [INFO] [stdout] | [INFO] [stdout] 1362 | Action::Add { metadata, .. } | Action::Update { metadata, .. } => metadata.updated_at(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/js.rs:128:30 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn entries(&self) -> Result, Vec)>, StoreError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JsVector` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/js.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 216 | pub fn len(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JsUnorderedSet` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/js.rs:330:5 [INFO] [stdout] | [INFO] [stdout] 330 | pub fn len(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/js.rs:687:30 [INFO] [stdout] | [INFO] [stdout] 687 | pub fn entries(&self) -> Result)>, StoreError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of the `unreachable!` macro [INFO] [stdout] --> src/logical_clock.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | None => unreachable!(), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreachable [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | clippy::unreachable, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/merge.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | CrdtType::GCounter => merge_g_counter(existing, incoming), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/snapshot.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | for (id, data) in &snapshot.entries { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/snapshot.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | for (id, data) in &snapshot.indexes { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/store.rs:177:30 [INFO] [stdout] | [INFO] [stdout] 177 | .filter(|(scope, _)| *scope == SCOPE) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/store.rs:178:27 [INFO] [stdout] | [INFO] [stdout] 178 | .map(|(_, key)| *key) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:14:29 [INFO] [stdout] | [INFO] [stdout] 14 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:63:29 [INFO] [stdout] | [INFO] [stdout] 63 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tests/collections.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | assert!(!map [INFO] [stdout] | _____________^ [INFO] [stdout] 93 | | .insert("key".to_string(), "new_value".to_string()) [INFO] [stdout] 94 | | .expect("insert failed") [INFO] [stdout] 95 | | .is_none()); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 92 ~ assert!(map [INFO] [stdout] 93 + .insert("key".to_string(), "new_value".to_string()) [INFO] [stdout] 94 ~ .expect("insert failed").is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:86:29 [INFO] [stdout] | [INFO] [stdout] 86 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:105:29 [INFO] [stdout] | [INFO] [stdout] 105 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:121:29 [INFO] [stdout] | [INFO] [stdout] 121 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tests/collections.rs:152:13 [INFO] [stdout] | [INFO] [stdout] 152 | assert!(!map [INFO] [stdout] | _____________^ [INFO] [stdout] 153 | | .insert("key2".to_string(), "value3".to_string()) [INFO] [stdout] 154 | | .expect("insert failed") [INFO] [stdout] 155 | | .is_none()); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 152 ~ assert!(map [INFO] [stdout] 153 + .insert("key2".to_string(), "value3".to_string()) [INFO] [stdout] 154 ~ .expect("insert failed").is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:140:29 [INFO] [stdout] | [INFO] [stdout] 140 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:169:29 [INFO] [stdout] | [INFO] [stdout] 169 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests/collections.rs:176:5 [INFO] [stdout] | [INFO] [stdout] 176 | assert_eq!(map.contains("key").expect("contains failed"), 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] 176 - assert_eq!(map.contains("key").expect("contains failed"), true); [INFO] [stdout] 176 + assert!(map.contains("key").expect("contains failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests/collections.rs:177:5 [INFO] [stdout] | [INFO] [stdout] 177 | assert_eq!(map.contains("nonexistent").expect("contains failed"), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 177 - assert_eq!(map.contains("nonexistent").expect("contains failed"), false); [INFO] [stdout] 177 + assert!(!map.contains("nonexistent").expect("contains failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tests/collections.rs:192:13 [INFO] [stdout] | [INFO] [stdout] 192 | assert!(!map [INFO] [stdout] | _____________^ [INFO] [stdout] 193 | | .insert("key2".to_string(), "value3".to_string()) [INFO] [stdout] 194 | | .expect("insert failed") [INFO] [stdout] 195 | | .is_none()); [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 192 ~ assert!(map [INFO] [stdout] 193 + .insert("key2".to_string(), "value3".to_string()) [INFO] [stdout] 194 ~ .expect("insert failed").is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:182:29 [INFO] [stdout] | [INFO] [stdout] 182 | let mut map = Root::new(|| UnorderedMap::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedMap::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:210:32 [INFO] [stdout] | [INFO] [stdout] 210 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:220:32 [INFO] [stdout] | [INFO] [stdout] 220 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/tests/collections.rs:223:5 [INFO] [stdout] | [INFO] [stdout] 223 | let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 223 - let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] 223 + vector.push(value.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:230:32 [INFO] [stdout] | [INFO] [stdout] 230 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/tests/collections.rs:234:5 [INFO] [stdout] | [INFO] [stdout] 234 | let _ = vector.push(value1.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 234 - let _ = vector.push(value1.clone()).unwrap(); [INFO] [stdout] 234 + vector.push(value1.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:243:28 [INFO] [stdout] | [INFO] [stdout] 243 | let vector = Root::new(|| Vector::::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:253:32 [INFO] [stdout] | [INFO] [stdout] 253 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/tests/collections.rs:256:5 [INFO] [stdout] | [INFO] [stdout] 256 | let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 256 - let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] 256 + vector.push(value.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:264:32 [INFO] [stdout] | [INFO] [stdout] 264 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/tests/collections.rs:268:5 [INFO] [stdout] | [INFO] [stdout] 268 | let _ = vector.push(value1.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 268 - let _ = vector.push(value1.clone()).unwrap(); [INFO] [stdout] 268 + vector.push(value1.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/tests/collections.rs:269:5 [INFO] [stdout] | [INFO] [stdout] 269 | let _ = vector.push(value2.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 269 - let _ = vector.push(value2.clone()).unwrap(); [INFO] [stdout] 269 + vector.push(value2.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:276:32 [INFO] [stdout] | [INFO] [stdout] 276 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/tests/collections.rs:279:5 [INFO] [stdout] | [INFO] [stdout] 279 | let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 279 - let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] 279 + vector.push(value.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:287:32 [INFO] [stdout] | [INFO] [stdout] 287 | let mut vector = Root::new(|| Vector::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Vector::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/tests/collections.rs:290:5 [INFO] [stdout] | [INFO] [stdout] 290 | let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 290 - let _ = vector.push(value.clone()).unwrap(); [INFO] [stdout] 290 + vector.push(value.clone()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:301:29 [INFO] [stdout] | [INFO] [stdout] 301 | let mut set = Root::new(|| UnorderedSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedSet::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests/collections.rs:305:5 [INFO] [stdout] | [INFO] [stdout] 305 | / assert_eq!( [INFO] [stdout] 306 | | set.contains(&"value1".to_string()) [INFO] [stdout] 307 | | .expect("contains failed"), [INFO] [stdout] 308 | | true [INFO] [stdout] 309 | | ); [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] 305 ~ assert!( [INFO] [stdout] 306 | set.contains(&"value1".to_string()) [INFO] [stdout] 307 ~ .expect("contains failed") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests/collections.rs:314:5 [INFO] [stdout] | [INFO] [stdout] 314 | assert_eq!(set.contains("value3").expect("get failed"), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 314 - assert_eq!(set.contains("value3").expect("get failed"), false); [INFO] [stdout] 314 + assert!(!set.contains("value3").expect("get failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests/collections.rs:315:5 [INFO] [stdout] | [INFO] [stdout] 315 | assert_eq!(set.contains("value2").expect("get failed"), 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] 315 - assert_eq!(set.contains("value2").expect("get failed"), true); [INFO] [stdout] 315 + assert!(set.contains("value2").expect("get failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests/collections.rs:317:5 [INFO] [stdout] | [INFO] [stdout] 317 | / assert_eq!( [INFO] [stdout] 318 | | set.remove("value1").expect("error while removing key"), [INFO] [stdout] 319 | | true [INFO] [stdout] 320 | | ); [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] 317 ~ assert!( [INFO] [stdout] 318 ~ set.remove("value1").expect("error while removing key") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests/collections.rs:321:5 [INFO] [stdout] | [INFO] [stdout] 321 | / assert_eq!( [INFO] [stdout] 322 | | set.remove("value3").expect("error while removing key"), [INFO] [stdout] 323 | | false [INFO] [stdout] 324 | | ); [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] 321 ~ assert!( [INFO] [stdout] 322 ~ !set.remove("value3").expect("error while removing key") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:329:29 [INFO] [stdout] | [INFO] [stdout] 329 | let mut set = Root::new(|| UnorderedSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedSet::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:344:29 [INFO] [stdout] | [INFO] [stdout] 344 | let mut set = Root::new(|| UnorderedSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedSet::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests/collections.rs:354:5 [INFO] [stdout] | [INFO] [stdout] 354 | assert_eq!(set.contains("value1").expect("contains failed"), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 354 - assert_eq!(set.contains("value1").expect("contains failed"), false); [INFO] [stdout] 354 + assert!(!set.contains("value1").expect("contains failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests/collections.rs:355:5 [INFO] [stdout] | [INFO] [stdout] 355 | assert_eq!(set.contains("value2").expect("contains failed"), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 355 - assert_eq!(set.contains("value2").expect("contains failed"), false); [INFO] [stdout] 355 + assert!(!set.contains("value2").expect("contains failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/tests/collections.rs:360:29 [INFO] [stdout] | [INFO] [stdout] 360 | let mut set = Root::new(|| UnorderedSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `UnorderedSet::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `items` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/collections.rs:372:9 [INFO] [stdout] | [INFO] [stdout] 372 | let items: Vec = set.iter().expect("items failed").collect(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/collections.rs:365:9 [INFO] [stdout] | [INFO] [stdout] 365 | let items: Vec = set.iter().expect("items failed").collect(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Paragraphs` [INFO] [stdout] --> src/tests/common.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | / pub fn new() -> Self { [INFO] [stdout] 148 | | Self {} [INFO] [stdout] 149 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 145 + impl Default for Paragraphs { [INFO] [stdout] 146 + fn default() -> Self { [INFO] [stdout] 147 + Self::new() [INFO] [stdout] 148 + } [INFO] [stdout] 149 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref mut metadata` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/common.rs:261:17 [INFO] [stdout] | [INFO] [stdout] 261 | ref mut metadata, .. [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/common.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | let metadata = Metadata { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref mut metadata` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/common.rs:311:17 [INFO] [stdout] | [INFO] [stdout] 311 | ref mut metadata, .. [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/common.rs:287:9 [INFO] [stdout] | [INFO] [stdout] 287 | let metadata = Metadata { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `retrieved` after checking its variant with `is_some` [INFO] [stdout] --> src/tests/crdt.rs:184:20 [INFO] [stdout] | [INFO] [stdout] 183 | if retrieved.is_some() { [INFO] [stdout] | ---------------------- help: try: `if let Some() = retrieved` [INFO] [stdout] 184 | assert_eq!(retrieved.unwrap().title, "Resurrected"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `delta` is shadowed [INFO] [stdout] --> src/tests/delta.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | let delta = delta.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/delta.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | let delta = result.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tests/delta.rs:257:13 [INFO] [stdout] | [INFO] [stdout] 257 | assert!(delta1.actions.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!delta1.actions.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tests/delta.rs:272:13 [INFO] [stdout] | [INFO] [stdout] 272 | assert!(delta2.actions.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!delta2.actions.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] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/tests/delta.rs:376:9 [INFO] [stdout] | [INFO] [stdout] 376 | Action::Add { id, .. } => assert_eq!(*id, id1), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/tests/delta.rs:380:9 [INFO] [stdout] | [INFO] [stdout] 380 | Action::Add { id, .. } => assert_eq!(*id, id2), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/tests/delta.rs:384:9 [INFO] [stdout] | [INFO] [stdout] 384 | Action::Add { id, .. } => assert_eq!(*id, id3), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/tests/delta.rs:416:9 [INFO] [stdout] | [INFO] [stdout] 416 | crate::action::Action::Update { id, .. } => assert_eq!(*id, page.id()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/tests/delta.rs:442:9 [INFO] [stdout] | [INFO] [stdout] 442 | Action::DeleteRef { id: action_id, .. } => assert_eq!(*action_id, id), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tests/lww_register.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | assert_eq!(*flag, 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] 178 - assert_eq!(*flag, true); [INFO] [stdout] 178 + assert!(*flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `result` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/merge_dispatch.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | let result = merge_by_crdt_type(&CrdtType::unordered_set("String"), &existing, &incoming); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/merge_dispatch.rs:276:9 [INFO] [stdout] | [INFO] [stdout] 276 | let result = merge_by_crdt_type( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `result` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/merge_dispatch.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | let result = merge_by_crdt_type(&CrdtType::vector("u64"), &existing, &incoming); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/merge_dispatch.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | let result = merge_by_crdt_type(&CrdtType::unordered_set("String"), &existing, &incoming); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/tests/merge_integration.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | final_value >= 2 && final_value <= 6, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(2..=6).contains(&final_value)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `mut doc` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/merge_integration.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | let mut doc = state1_modified [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/merge_integration.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | let mut doc = state2.documents.get(&"doc-1".to_string()).unwrap().unwrap(); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `mut c` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/merge_integration.rs:409:13 [INFO] [stdout] | [INFO] [stdout] 409 | let mut c = state2.metrics.get(1).unwrap().unwrap(); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/merge_integration.rs:405:9 [INFO] [stdout] | [INFO] [stdout] 405 | let mut c = state2.metrics.get(0).unwrap().unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `Debug`-based formatting [INFO] [stdout] --> src/tests/merge_integration.rs:905:43 [INFO] [stdout] | [INFO] [stdout] 905 | println!("Counter entries in storage: {:?}", entries); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_debug [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | clippy::use_debug [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/tests/merge_integration.rs:913:21 [INFO] [stdout] | [INFO] [stdout] 913 | hex::encode(&hash) [INFO] [stdout] | ^^^^^ help: change this to: `hash` [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: use of `Debug`-based formatting [INFO] [stdout] --> src/tests/merge_integration.rs:924:23 [INFO] [stdout] | [INFO] [stdout] 924 | "The entries ({:?}) are stored separately in storage.", [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `Debug`-based formatting [INFO] [stdout] --> src/tests/merge_integration.rs:940:45 [INFO] [stdout] | [INFO] [stdout] 940 | println!("Deserialized counter entries: {:?}", deser_entries); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/tests/merge_integration.rs:958:5 [INFO] [stdout] | [INFO] [stdout] 958 | println!(""); [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: the borrowed expression implements the required traits [INFO] [stdout] --> src/tests/merge_integration.rs:1034:61 [INFO] [stdout] | [INFO] [stdout] 1034 | println!("Node-1 root hash after save: {}", hex::encode(&node1_hash)); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `node1_hash` [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: use of `Debug`-based formatting [INFO] [stdout] --> src/tests/merge_integration.rs:1039:27 [INFO] [stdout] | [INFO] [stdout] 1039 | "Delta generated: {:?}", [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/tests/merge_integration.rs:1059:21 [INFO] [stdout] | [INFO] [stdout] 1059 | hex::encode(&node2_hash_before) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `node2_hash_before` [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: `delta` is shadowed [INFO] [stdout] --> src/tests/merge_integration.rs:1063:17 [INFO] [stdout] | [INFO] [stdout] 1063 | if let Some(delta) = delta { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/merge_integration.rs:1037:9 [INFO] [stdout] | [INFO] [stdout] 1037 | let delta = commit_causal_delta(&node1_hash).unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_reuse [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type of pattern does not match the expression type [INFO] [stdout] --> src/tests/merge_integration.rs:1067:17 [INFO] [stdout] | [INFO] [stdout] 1067 | Action::Add { id, data, .. } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `data` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/merge_integration.rs:1067:35 [INFO] [stdout] | [INFO] [stdout] 1067 | Action::Add { id, data, .. } => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/merge_integration.rs:1021:9 [INFO] [stdout] | [INFO] [stdout] 1021 | let data = borsh::to_vec(&*node1_state).unwrap(); [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `data` shadows a previous, unrelated binding [INFO] [stdout] --> src/tests/merge_integration.rs:1070:38 [INFO] [stdout] | [INFO] [stdout] 1070 | Action::Update { id, data, .. } => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] note: previous binding is here [INFO] [stdout] --> src/tests/merge_integration.rs:1021:9 [INFO] [stdout] | [INFO] [stdout] 1021 | let data = borsh::to_vec(&*node1_state).unwrap(); [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#shadow_unrelated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/tests/merge_integration.rs:1095:21 [INFO] [stdout] | [INFO] [stdout] 1095 | hex::encode(&node2_hash_after) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `node2_hash_after` [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] --> src/tests/merge_integration.rs:1100:45 [INFO] [stdout] | [INFO] [stdout] 1100 | println!("Node-1 hash: {}", hex::encode(&node1_hash)); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `node1_hash` [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] --> src/tests/merge_integration.rs:1101:45 [INFO] [stdout] | [INFO] [stdout] 1101 | println!("Node-2 hash: {}", hex::encode(&node2_hash_after)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `node2_hash_after` [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] --> src/tests/merge_integration.rs:1108:21 [INFO] [stdout] | [INFO] [stdout] 1108 | hex::encode(&node1_hash), [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `node1_hash` [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] --> src/tests/merge_integration.rs:1109:21 [INFO] [stdout] | [INFO] [stdout] 1109 | hex::encode(&node2_hash_after) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `node2_hash_after` [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: use of `Debug`-based formatting [INFO] [stdout] --> src/tests/merge_integration.rs:1184:68 [INFO] [stdout] | [INFO] [stdout] 1184 | Err(e) => println!(" grandchildren error: {:?}", e), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `Debug`-based formatting [INFO] [stdout] --> src/tests/merge_integration.rs:1188:46 [INFO] [stdout] | [INFO] [stdout] 1188 | Err(e) => println!(" ROOT_ID error: {:?}", e), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#use_debug [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/tests/merge_integration.rs:1244:45 [INFO] [stdout] | [INFO] [stdout] 1244 | println!(" own_hash: {}", hex::encode(&node1_own)); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `node1_own` [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] --> src/tests/merge_integration.rs:1245:45 [INFO] [stdout] | [INFO] [stdout] 1245 | println!(" full_hash: {}", hex::encode(&node1_full)); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `node1_full` [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] --> src/tests/merge_integration.rs:1281:45 [INFO] [stdout] | [INFO] [stdout] 1281 | println!(" own_hash: {}", hex::encode(&node2_own)); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `node2_own` [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] --> src/tests/merge_integration.rs:1282:45 [INFO] [stdout] | [INFO] [stdout] 1282 | println!(" full_hash: {}", hex::encode(&node2_full)); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `node2_full` [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] --> src/tests/merge_integration.rs:1306:21 [INFO] [stdout] | [INFO] [stdout] 1306 | hex::encode(&node1_init_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `node1_init_hash` [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] --> src/tests/merge_integration.rs:1307:21 [INFO] [stdout] | [INFO] [stdout] 1307 | hex::encode(&node2_init_hash) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `node2_init_hash` [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] --> src/tests/merge_integration.rs:1348:21 [INFO] [stdout] | [INFO] [stdout] 1348 | hex::encode(&node1_final_hash) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `node1_final_hash` [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: type of pattern does not match the expression type [INFO] [stdout] --> src/tests/merge_integration.rs:1361:17 [INFO] [stdout] | [INFO] [stdout] 1361 | Action::Add { id, data, .. } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `*` to dereference the match expression or explicitly match against a `&_` pattern and adjust the enclosed variable bindings [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#pattern_type_mismatch [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/tests/merge_integration.rs:1391:56 [INFO] [stdout] | [INFO] [stdout] 1391 | println!("Node-2 hash after sync: {}", hex::encode(&node2_final_hash)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `node2_final_hash` [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] --> src/tests/merge_integration.rs:1395:51 [INFO] [stdout] | [INFO] [stdout] 1395 | println!("Node-1 final hash: {}", hex::encode(&node1_final_hash)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `node1_final_hash` [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] --> src/tests/merge_integration.rs:1396:51 [INFO] [stdout] | [INFO] [stdout] 1396 | println!("Node-2 final hash: {}", hex::encode(&node2_final_hash)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `node2_final_hash` [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] --> src/tests/merge_integration.rs:1402:21 [INFO] [stdout] | [INFO] [stdout] 1402 | hex::encode(&node1_final_hash), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `node1_final_hash` [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] --> src/tests/merge_integration.rs:1403:21 [INFO] [stdout] | [INFO] [stdout] 1403 | hex::encode(&node2_final_hash) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `node2_final_hash` [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: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/collections/lww_register.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | pub fn merge(&mut self, other: &Self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `merge` defined here [INFO] [stdout] --> src/collections/crdt_impls.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | fn merge(&mut self, other: &Self) -> Result<(), MergeError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | clippy::same_name_method, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn element(&self) -> &Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element` defined here [INFO] [stdout] --> src/js.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn element_mut(&mut self) -> &mut Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element_mut` defined here [INFO] [stdout] --> src/js.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:177:17 [INFO] [stdout] | [INFO] [stdout] 177 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:321:5 [INFO] [stdout] | [INFO] [stdout] 321 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:291:17 [INFO] [stdout] | [INFO] [stdout] 291 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:436:5 [INFO] [stdout] | [INFO] [stdout] 436 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:406:17 [INFO] [stdout] | [INFO] [stdout] 406 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:514:5 [INFO] [stdout] | [INFO] [stdout] 514 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:487:17 [INFO] [stdout] | [INFO] [stdout] 487 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:604:5 [INFO] [stdout] | [INFO] [stdout] 604 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:575:17 [INFO] [stdout] | [INFO] [stdout] 575 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:616:5 [INFO] [stdout] | [INFO] [stdout] 616 | pub fn element(&self) -> &Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element` defined here [INFO] [stdout] --> src/js.rs:575:17 [INFO] [stdout] | [INFO] [stdout] 575 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:622:5 [INFO] [stdout] | [INFO] [stdout] 622 | pub fn element_mut(&mut self) -> &mut Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element_mut` defined here [INFO] [stdout] --> src/js.rs:575:17 [INFO] [stdout] | [INFO] [stdout] 575 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:753:5 [INFO] [stdout] | [INFO] [stdout] 753 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `id` defined here [INFO] [stdout] --> src/js.rs:724:17 [INFO] [stdout] | [INFO] [stdout] 724 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:765:5 [INFO] [stdout] | [INFO] [stdout] 765 | pub fn element(&self) -> &Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element` defined here [INFO] [stdout] --> src/js.rs:724:17 [INFO] [stdout] | [INFO] [stdout] 724 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method's name is the same as an existing method in a trait [INFO] [stdout] --> src/js.rs:771:5 [INFO] [stdout] | [INFO] [stdout] 771 | pub fn element_mut(&mut self) -> &mut Element { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: existing `element_mut` defined here [INFO] [stdout] --> src/js.rs:724:17 [INFO] [stdout] | [INFO] [stdout] 724 | #[derive(Debug, AtomicUnit, BorshSerialize, BorshDeserialize)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#same_name_method [INFO] [stdout] = note: this warning originates in the derive macro `AtomicUnit` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/tests/delta.rs:110:39 [INFO] [stdout] | [INFO] [stdout] 110 | let id1 = CausalDelta::compute_id(&vec![[0; 32]], &actions, &hlc); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[[0; 32]]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/tests/delta.rs:111:39 [INFO] [stdout] | [INFO] [stdout] 111 | let id2 = CausalDelta::compute_id(&vec![[1; 32]], &actions, &hlc); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[[1; 32]]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/js.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 187 | pub fn new() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | missing_docs, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/js.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | pub fn new() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:321:5 [INFO] [stdout] | [INFO] [stdout] 321 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/js.rs:416:5 [INFO] [stdout] | [INFO] [stdout] 416 | pub fn new() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:436:5 [INFO] [stdout] | [INFO] [stdout] 436 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:440:5 [INFO] [stdout] | [INFO] [stdout] 440 | pub fn set(&mut self, value: Option<&[u8]>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:448:5 [INFO] [stdout] | [INFO] [stdout] 448 | pub fn get(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:452:5 [INFO] [stdout] | [INFO] [stdout] 452 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:457:5 [INFO] [stdout] | [INFO] [stdout] 457 | pub fn timestamp(&self) -> crate::logical_clock::HybridTimestamp { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/js.rs:497:5 [INFO] [stdout] | [INFO] [stdout] 497 | pub fn new() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/js.rs:514:5 [INFO] [stdout] | [INFO] [stdout] 514 | pub fn id(&self) -> Id { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/env.rs:129:10 [INFO] [stdout] | [INFO] [stdout] 129 | #[expect(clippy::missing_const_for_fn, reason = "Cannot be const here")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: Cannot be const here [INFO] [stdout] = note: `#[warn(unfulfilled_lint_expectations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/env.rs:197:10 [INFO] [stdout] | [INFO] [stdout] 197 | #[expect(clippy::missing_const_for_fn, reason = "Cannot be const here")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: Cannot be const here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/env.rs:206:10 [INFO] [stdout] | [INFO] [stdout] 206 | #[expect(clippy::missing_const_for_fn, reason = "Cannot be const here")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: Cannot be const here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/env.rs:215:10 [INFO] [stdout] | [INFO] [stdout] 215 | #[expect(clippy::missing_const_for_fn, reason = "Cannot be const here")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: Cannot be const here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/address.rs:68:14 [INFO] [stdout] | [INFO] [stdout] 68 | #[expect(clippy::use_debug, reason = "fine for now")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: fine for now [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/collections/root.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | clippy::unwrap_in_result, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: fatal error if it happens [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lint expectation is unfulfilled [INFO] [stdout] --> src/collections.rs:391:9 [INFO] [stdout] | [INFO] [stdout] 391 | clippy::unwrap_in_result, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: fatal error if it happens [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.85s [INFO] running `Command { std: "docker" "inspect" "30e220ae143c541e48536bdd2c71c5e2b1fdc5d5e5a715dcd6222faa96298878", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "30e220ae143c541e48536bdd2c71c5e2b1fdc5d5e5a715dcd6222faa96298878", kill_on_drop: false }` [INFO] [stdout] 30e220ae143c541e48536bdd2c71c5e2b1fdc5d5e5a715dcd6222faa96298878