[INFO] crate ethereum-trie-test 0.3.9 is already in cache [INFO] extracting crate ethereum-trie-test 0.3.9 into work/ex/clippy-test-run/sources/stable/reg/ethereum-trie-test/0.3.9 [INFO] extracting crate ethereum-trie-test 0.3.9 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ethereum-trie-test/0.3.9 [INFO] validating manifest of ethereum-trie-test-0.3.9 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of ethereum-trie-test-0.3.9 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing ethereum-trie-test-0.3.9 [INFO] finished frobbing ethereum-trie-test-0.3.9 [INFO] frobbed toml for ethereum-trie-test-0.3.9 written to work/ex/clippy-test-run/sources/stable/reg/ethereum-trie-test/0.3.9/Cargo.toml [INFO] started frobbing ethereum-trie-test-0.3.9 [INFO] finished frobbing ethereum-trie-test-0.3.9 [INFO] frobbed toml for ethereum-trie-test-0.3.9 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ethereum-trie-test/0.3.9/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting ethereum-trie-test-0.3.9 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/ethereum-trie-test/0.3.9:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 20f2dfb34856b592e03fe05cad38d6c92c08d5bde09cbc3ccd8e625da79e3501 [INFO] running `"docker" "start" "-a" "20f2dfb34856b592e03fe05cad38d6c92c08d5bde09cbc3ccd8e625da79e3501"` [INFO] [stderr] Checking ethereum-trie-test v0.3.9 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/iter.rs:75:21 [INFO] [stderr] | [INFO] [stderr] 75 | database: database, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `database` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/iter.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | database: database, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `database` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/iter.rs:75:21 [INFO] [stderr] | [INFO] [stderr] 75 | database: database, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `database` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/iter.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | database: database, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `database` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DerefMut`, `Deref` [INFO] [stderr] --> src/lib.rs:12:16 [INFO] [stderr] | [INFO] [stderr] 12 | use std::ops::{Deref, DerefMut}; [INFO] [stderr] | ^^^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Decodable`, `Encodable`, `Prototype` [INFO] [stderr] --> src/merkle/nibble.rs:1:22 [INFO] [stderr] | [INFO] [stderr] 1 | use rlp::{RlpStream, Encodable, Decodable, Rlp, Prototype}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Deref` [INFO] [stderr] --> src/merkle/nibble.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::ops::Deref; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Hash` [INFO] [stderr] --> src/merkle/nibble.rs:4:17 [INFO] [stderr] | [INFO] [stderr] 4 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Debug`, `Formatter`, `self` [INFO] [stderr] --> src/merkle/nibble.rs:5:16 [INFO] [stderr] | [INFO] [stderr] 5 | use std::fmt::{self, Debug, Formatter}; [INFO] [stderr] | ^^^^ ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:108:34 [INFO] [stderr] | [INFO] [stderr] 108 | let start_odd = if data[0] & 0b00010000 == 0b00010000 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:108:48 [INFO] [stderr] | [INFO] [stderr] 108 | let start_odd = if data[0] & 0b00010000 == 0b00010000 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:110:29 [INFO] [stderr] | [INFO] [stderr] 110 | let is_leaf = data[0] & 0b00100000 == 0b00100000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:110:43 [INFO] [stderr] | [INFO] [stderr] 110 | let is_leaf = data[0] & 0b00100000 == 0b00100000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:129:18 [INFO] [stderr] | [INFO] [stderr] 129 | ret.push(0b00000000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:142:18 [INFO] [stderr] | [INFO] [stderr] 142 | ret.push(0b00010000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:157:29 [INFO] [stderr] | [INFO] [stderr] 157 | NibbleType::Leaf => 0b00100000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:158:34 [INFO] [stderr] | [INFO] [stderr] 158 | NibbleType::Extension => 0b00000000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused imports: `NibbleSlice`, `Nibble` [INFO] [stderr] --> src/merkle/node.rs:1:27 [INFO] [stderr] | [INFO] [stderr] 1 | use super::nibble::{self, Nibble, NibbleVec, NibbleSlice, NibbleType}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `NibbleSlice`, `NibbleType`, `NibbleVec`, `Nibble` [INFO] [stderr] --> src/merkle/mod.rs:4:20 [INFO] [stderr] | [INFO] [stderr] 4 | use self::nibble::{Nibble, NibbleVec, NibbleSlice, NibbleType}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Trie` [INFO] [stderr] --> src/database/memory.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use ::Trie; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `DatabaseOwned` [INFO] [stderr] --> src/database/memory.rs:2:23 [INFO] [stderr] | [INFO] [stderr] 2 | use super::{Database, DatabaseOwned, DatabaseGuard}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:299:9 [INFO] [stderr] | [INFO] [stderr] 299 | return MerkleNode::Branch(nodes, additional); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `MerkleNode::Branch(nodes, additional)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `Hasher` [INFO] [stderr] --> src/merkle/nibble.rs:4:23 [INFO] [stderr] | [INFO] [stderr] 4 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Decodable` [INFO] [stderr] --> src/merkle/node.rs:3:39 [INFO] [stderr] | [INFO] [stderr] 3 | use rlp::{self, RlpStream, Encodable, Decodable, Rlp, Prototype}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/lib.rs:283:74 [INFO] [stderr] | [INFO] [stderr] 283 | let submap = Self::build_submap(1, map.iter().filter(|&(key, value)| { [INFO] [stderr] | ^^^^^ help: consider using `_value` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/lib.rs:296:29 [INFO] [stderr] | [INFO] [stderr] 296 | .filter(|&(key, value)| key.len() == 0).next() [INFO] [stderr] | ^^^^^ help: consider using `_value` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/lib.rs:297:20 [INFO] [stderr] | [INFO] [stderr] 297 | .map(|(key, value)| value.clone()); [INFO] [stderr] | ^^^ help: consider using `_key` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sub_nodes` [INFO] [stderr] --> src/lib.rs:632:44 [INFO] [stderr] | [INFO] [stderr] 632 | MerkleNode::Branch(sub_nodes, sub_additional) => { [INFO] [stderr] | ^^^^^^^^^ help: consider using `_sub_nodes` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sub_additional` [INFO] [stderr] --> src/lib.rs:632:55 [INFO] [stderr] | [INFO] [stderr] 632 | MerkleNode::Branch(sub_nodes, sub_additional) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_sub_additional` instead [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DerefMut`, `Deref` [INFO] [stderr] --> src/lib.rs:12:16 [INFO] [stderr] | [INFO] [stderr] 12 | use std::ops::{Deref, DerefMut}; [INFO] [stderr] | ^^^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Decodable`, `Encodable`, `Prototype` [INFO] [stderr] --> src/merkle/nibble.rs:1:22 [INFO] [stderr] | [INFO] [stderr] 1 | use rlp::{RlpStream, Encodable, Decodable, Rlp, Prototype}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Deref` [INFO] [stderr] --> src/merkle/nibble.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::ops::Deref; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Hash` [INFO] [stderr] --> src/merkle/nibble.rs:4:17 [INFO] [stderr] | [INFO] [stderr] 4 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Debug`, `Formatter`, `self` [INFO] [stderr] --> src/merkle/nibble.rs:5:16 [INFO] [stderr] | [INFO] [stderr] 5 | use std::fmt::{self, Debug, Formatter}; [INFO] [stderr] | ^^^^ ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:108:34 [INFO] [stderr] | [INFO] [stderr] 108 | let start_odd = if data[0] & 0b00010000 == 0b00010000 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:108:48 [INFO] [stderr] | [INFO] [stderr] 108 | let start_odd = if data[0] & 0b00010000 == 0b00010000 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:110:29 [INFO] [stderr] | [INFO] [stderr] 110 | let is_leaf = data[0] & 0b00100000 == 0b00100000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:110:43 [INFO] [stderr] | [INFO] [stderr] 110 | let is_leaf = data[0] & 0b00100000 == 0b00100000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:129:18 [INFO] [stderr] | [INFO] [stderr] 129 | ret.push(0b00000000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:142:18 [INFO] [stderr] | [INFO] [stderr] 142 | ret.push(0b00010000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:157:29 [INFO] [stderr] | [INFO] [stderr] 157 | NibbleType::Leaf => 0b00100000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/merkle/nibble.rs:158:34 [INFO] [stderr] | [INFO] [stderr] 158 | NibbleType::Extension => 0b00000000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused imports: `NibbleSlice`, `Nibble` [INFO] [stderr] --> src/merkle/node.rs:1:27 [INFO] [stderr] | [INFO] [stderr] 1 | use super::nibble::{self, Nibble, NibbleVec, NibbleSlice, NibbleType}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Keccak256` [INFO] [stderr] --> src/merkle/node.rs:157:24 [INFO] [stderr] | [INFO] [stderr] 157 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `NibbleSlice`, `NibbleVec`, `Nibble` [INFO] [stderr] --> src/merkle/node.rs:158:32 [INFO] [stderr] | [INFO] [stderr] 158 | use merkle::nibble::{self, NibbleVec, NibbleSlice, Nibble}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `NibbleSlice`, `NibbleType`, `NibbleVec`, `Nibble` [INFO] [stderr] --> src/merkle/mod.rs:4:20 [INFO] [stderr] | [INFO] [stderr] 4 | use self::nibble::{Nibble, NibbleVec, NibbleSlice, NibbleType}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Trie` [INFO] [stderr] --> src/database/memory.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use ::Trie; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `DatabaseOwned` [INFO] [stderr] --> src/database/memory.rs:2:23 [INFO] [stderr] | [INFO] [stderr] 2 | use super::{Database, DatabaseOwned, DatabaseGuard}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:299:9 [INFO] [stderr] | [INFO] [stderr] 299 | return MerkleNode::Branch(nodes, additional); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `MerkleNode::Branch(nodes, additional)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: method is never used: `free` [INFO] [stderr] --> src/database/mod.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn free<'b>(&'b mut self, hash: H256) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `freed` [INFO] [stderr] --> src/database/mod.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | freed: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::UnsafeCell` [INFO] [stderr] --> src/lib.rs:726:9 [INFO] [stderr] | [INFO] [stderr] 726 | use std::cell::UnsafeCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/merkle/nibble.rs:108:21 [INFO] [stderr] | [INFO] [stderr] 108 | let start_odd = if data[0] & 0b00010000 == 0b00010000 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `data[0] & 0b00010000 == 0b00010000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `vec` [INFO] [stderr] --> src/merkle/nibble.rs:131:18 [INFO] [stderr] | [INFO] [stderr] 131 | for i in 0..vec.len() { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 131 | for (i, ) in vec.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `vec` [INFO] [stderr] --> src/merkle/nibble.rs:144:18 [INFO] [stderr] | [INFO] [stderr] 144 | for i in 0..vec.len() { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 144 | for (i, ) in vec.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/merkle/node.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | Branch([MerkleValue<'a>; 16], Option<&'a [u8]>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/merkle/node.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | Branch([MerkleValue<'a>; 16], Option<&'a [u8]>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `nodes` [INFO] [stderr] --> src/merkle/node.rs:37:26 [INFO] [stderr] | [INFO] [stderr] 37 | for i in 0..16 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 37 | for (i, ) in nodes.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/merkle/node.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / match self { [INFO] [stderr] 59 | | &MerkleNode::Leaf(ref nibble, ref value) => { [INFO] [stderr] 60 | | MerkleNode::Leaf(nibble.clone(), value.clone()) [INFO] [stderr] 61 | | }, [INFO] [stderr] ... | [INFO] [stderr] 78 | | }, [INFO] [stderr] 79 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 58 | match *self { [INFO] [stderr] 59 | MerkleNode::Leaf(ref nibble, ref value) => { [INFO] [stderr] 60 | MerkleNode::Leaf(nibble.clone(), value.clone()) [INFO] [stderr] 61 | }, [INFO] [stderr] 62 | MerkleNode::Extension(ref nibble, ref value) => { [INFO] [stderr] 63 | MerkleNode::Extension(nibble.clone(), value.clone()) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/merkle/node.rs:60:50 [INFO] [stderr] | [INFO] [stderr] 60 | MerkleNode::Leaf(nibble.clone(), value.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 60 | MerkleNode::Leaf(nibble.clone(), &(*value).clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 60 | MerkleNode::Leaf(nibble.clone(), &[u8]::clone(value)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/merkle/node.rs:74:26 [INFO] [stderr] | [INFO] [stderr] 74 | for i in 0..16 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `cloned_nodes[..16].clone_from_slice(&nodes[..16])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/merkle/node.rs:77:50 [INFO] [stderr] | [INFO] [stderr] 77 | MerkleNode::Branch(cloned_nodes, additional.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*additional` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/merkle/node.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | / match self { [INFO] [stderr] 86 | | &MerkleNode::Leaf(ref nibble, ref value) => { [INFO] [stderr] 87 | | s.begin_list(2); [INFO] [stderr] 88 | | nibble::encode(nibble, NibbleType::Leaf, s); [INFO] [stderr] ... | [INFO] [stderr] 105 | | } [INFO] [stderr] 106 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 85 | match *self { [INFO] [stderr] 86 | MerkleNode::Leaf(ref nibble, ref value) => { [INFO] [stderr] 87 | s.begin_list(2); [INFO] [stderr] 88 | nibble::encode(nibble, NibbleType::Leaf, s); [INFO] [stderr] 89 | value.rlp_append(s); [INFO] [stderr] 90 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `nodes`. [INFO] [stderr] --> src/merkle/node.rs:98:26 [INFO] [stderr] | [INFO] [stderr] 98 | for i in 0..16 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 98 | for in nodes.iter().take(16) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/merkle/node.rs:101:17 [INFO] [stderr] | [INFO] [stderr] 101 | / match value { [INFO] [stderr] 102 | | &Some(ref value) => { value.rlp_append(s); }, [INFO] [stderr] 103 | | &None => { s.append_empty_data(); }, [INFO] [stderr] 104 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 101 | match *value { [INFO] [stderr] 102 | Some(ref value) => { value.rlp_append(s); }, [INFO] [stderr] 103 | None => { s.append_empty_data(); }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/merkle/node.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | / match self { [INFO] [stderr] 138 | | &MerkleValue::Empty => { [INFO] [stderr] 139 | | s.append_empty_data(); [INFO] [stderr] 140 | | }, [INFO] [stderr] ... | [INFO] [stderr] 148 | | }, [INFO] [stderr] 149 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 137 | match *self { [INFO] [stderr] 138 | MerkleValue::Empty => { [INFO] [stderr] 139 | s.append_empty_data(); [INFO] [stderr] 140 | }, [INFO] [stderr] 141 | MerkleValue::Full(ref node) => { [INFO] [stderr] 142 | debug_assert!(node.inlinable()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/database/memory.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | self.0.lock().unwrap().get(&hash).map(|v| v.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.0.lock().unwrap().get(&hash).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: impl for `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/database/mod.rs:50:24 [INFO] [stderr] | [INFO] [stderr] 50 | impl DatabaseGuard for HashMap> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 50 | impl DatabaseGuard for HashMap, S> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / fn get<'a>(&'a self, hash: H256) -> Option> { [INFO] [stderr] 52 | | self.get(&hash).map(|v| v.clone()) [INFO] [stderr] 53 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/database/mod.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | self.get(&hash).map(|v| v.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.get(&hash).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | / fn set<'a>(&'a mut self, hash: H256, value: Vec) { [INFO] [stderr] 56 | | self.insert(hash, value); [INFO] [stderr] 57 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | / pub fn get<'b>(&'b self, hash: H256) -> Option> { [INFO] [stderr] 80 | | if self.cache.borrow().contains_key(&hash) { [INFO] [stderr] 81 | | self.cache.borrow().get(&hash).map(|v| v.clone()) [INFO] [stderr] 82 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 88 | | } [INFO] [stderr] 89 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/database/mod.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | self.cache.borrow().get(&hash).map(|v| v.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.cache.borrow().get(&hash).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | / pub fn set<'b, 'c>(&'b mut self, hash: H256, value: Vec) { [INFO] [stderr] 92 | | self.cache.borrow_mut().insert(hash, value); [INFO] [stderr] 93 | | self.inserted.push(hash); [INFO] [stderr] 94 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/database/mod.rs:91:20 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn set<'b, 'c>(&'b mut self, hash: H256, value: Vec) { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | / pub fn free<'b>(&'b mut self, hash: H256) { [INFO] [stderr] 97 | | self.freed.push(hash); [INFO] [stderr] 98 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | / pub fn inserted<'b>(&'b self) -> &'b [H256] { [INFO] [stderr] 101 | | self.inserted.as_ref() [INFO] [stderr] 102 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:104:5 [INFO] [stderr] | [INFO] [stderr] 104 | / pub fn freed<'b>(&'b self) -> &'b [H256] { [INFO] [stderr] 105 | | self.freed.as_ref() [INFO] [stderr] 106 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/iter.rs:160:25 [INFO] [stderr] | [INFO] [stderr] 160 | / match additional { [INFO] [stderr] 161 | | Some(val) => return Some((into_key(&self.prefix), val.into())), [INFO] [stderr] 162 | | None => (), [INFO] [stderr] 163 | | } [INFO] [stderr] | |_________________________^ help: try this: `if let Some(val) = additional { return Some((into_key(&self.prefix), val.into())) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/lib.rs:229:18 [INFO] [stderr] | [INFO] [stderr] 229 | for i in 0..16 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `nodes[..16].clone_from_slice(&old_nodes[..16])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:251:62 [INFO] [stderr] | [INFO] [stderr] 251 | submap.insert(key.split_at(common_len).1.into(), value.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 251 | submap.insert(key.split_at(common_len).1.into(), &(*value).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 251 | submap.insert(key.split_at(common_len).1.into(), &[u8]::clone(value)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:257:12 [INFO] [stderr] | [INFO] [stderr] 257 | if map.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `map.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:263:50 [INFO] [stderr] | [INFO] [stderr] 263 | return MerkleNode::Leaf(key.clone(), map.get(key).unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 263 | return MerkleNode::Leaf(key.clone(), &(*map.get(key).unwrap()).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 263 | return MerkleNode::Leaf(key.clone(), &[u8]::clone(map.get(key).unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/lib.rs:270:12 [INFO] [stderr] | [INFO] [stderr] 270 | if common.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!common.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:272:27 [INFO] [stderr] | [INFO] [stderr] 272 | debug_assert!(submap.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!submap.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `nodes` [INFO] [stderr] --> src/lib.rs:280:18 [INFO] [stderr] | [INFO] [stderr] 280 | for i in 0..16 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 280 | for (i, ) in nodes.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:284:17 [INFO] [stderr] | [INFO] [stderr] 284 | key.len() > 0 && key[0] == nibble_index [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!key.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:286:28 [INFO] [stderr] | [INFO] [stderr] 286 | let value = if submap.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `submap.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/lib.rs:295:26 [INFO] [stderr] | [INFO] [stderr] 295 | let additional = map.iter() [INFO] [stderr] | __________________________^ [INFO] [stderr] 296 | | .filter(|&(key, value)| key.len() == 0).next() [INFO] [stderr] | |__________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(|&(key, value)| key.len() == 0).next()` with `find(|&(key, value)| key.len() == 0)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:296:37 [INFO] [stderr] | [INFO] [stderr] 296 | .filter(|&(key, value)| key.len() == 0).next() [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `key.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:297:33 [INFO] [stderr] | [INFO] [stderr] 297 | .map(|(key, value)| value.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 297 | .map(|(key, value)| &(*value).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 297 | .map(|(key, value)| &[u8]::clone(value)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:303:12 [INFO] [stderr] | [INFO] [stderr] 303 | if map.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `map.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:327:25 [INFO] [stderr] | [INFO] [stderr] 327 | fn get_by_value<'a, 'b>(database: &'a mut Change, cache: &'a Cache, nibble: NibbleVec, value: MerkleValue<'a>) -> Option<&'a [u8]> { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:346:24 [INFO] [stderr] | [INFO] [stderr] 346 | fn get_by_node<'a, 'b>(database: &'a mut Change, cache: &'a Cache, nibble: NibbleVec, node: MerkleNode<'a>) -> Option<&'a [u8]> { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/lib.rs:350:26 [INFO] [stderr] | [INFO] [stderr] 350 | Some(node_value.into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `node_value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:365:20 [INFO] [stderr] | [INFO] [stderr] 365 | if nibble.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `nibble.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:366:21 [INFO] [stderr] | [INFO] [stderr] 366 | additional.clone().map(|v| v.into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `additional` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/lib.rs:366:48 [INFO] [stderr] | [INFO] [stderr] 366 | additional.clone().map(|v| v.into()) [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:391:23 [INFO] [stderr] | [INFO] [stderr] 391 | debug_assert!(change.inserted().len() == 0 && change.freed().len() == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `change.inserted().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:391:55 [INFO] [stderr] | [INFO] [stderr] 391 | debug_assert!(change.inserted().len() == 0 && change.freed().len() == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `change.freed().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:395:28 [INFO] [stderr] | [INFO] [stderr] 395 | fn insert_by_value<'a, 'b: 'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:426:27 [INFO] [stderr] | [INFO] [stderr] 426 | fn insert_by_node<'a, 'b: 'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:433:54 [INFO] [stderr] | [INFO] [stderr] 433 | node_map.insert(node_nibble.clone(), node_value.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 433 | node_map.insert(node_nibble.clone(), &(*node_value).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 433 | node_map.insert(node_nibble.clone(), &[u8]::clone(node_value)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/lib.rs:472:24 [INFO] [stderr] | [INFO] [stderr] 472 | if common.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!common.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:481:20 [INFO] [stderr] | [INFO] [stderr] 481 | if nibble.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `nibble.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:488:47 [INFO] [stderr] | [INFO] [stderr] 488 | MerkleNode::Branch(nodes, node_additional.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*node_additional` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:503:56 [INFO] [stderr] | [INFO] [stderr] 503 | node_map.insert(nibble::from_key(key), value.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 503 | node_map.insert(nibble::from_key(key), &(*value).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 503 | node_map.insert(nibble::from_key(key), &[u8]::clone(value)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:524:28 [INFO] [stderr] | [INFO] [stderr] 524 | fn remove_by_value<'a, 'b: 'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:561:21 [INFO] [stderr] | [INFO] [stderr] 561 | fn collapse<'a, 'b: 'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/lib.rs:614:48 [INFO] [stderr] | [INFO] [stderr] 614 | let (value_index, value) = node_nodes [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 615 | | .iter().enumerate().filter(|&(_, value)| { [INFO] [stderr] 616 | | value != &MerkleValue::Empty [INFO] [stderr] 617 | | }).next() [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:642:27 [INFO] [stderr] | [INFO] [stderr] 642 | fn remove_by_node<'a, 'b: 'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:651:64 [INFO] [stderr] | [INFO] [stderr] 651 | Some(MerkleNode::Leaf(node_nibble.clone(), node_value.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 651 | Some(MerkleNode::Leaf(node_nibble.clone(), &(*node_value).clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 651 | Some(MerkleNode::Leaf(node_nibble.clone(), &[u8]::clone(node_value))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:668:38 [INFO] [stderr] | [INFO] [stderr] 668 | let mut additional = node_additional.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*node_additional` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:670:20 [INFO] [stderr] | [INFO] [stderr] 670 | if nibble.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!nibble.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: aborting due to 7 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `ethereum-trie-test`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unused import: `Hasher` [INFO] [stderr] --> src/merkle/nibble.rs:4:23 [INFO] [stderr] | [INFO] [stderr] 4 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Decodable` [INFO] [stderr] --> src/merkle/node.rs:3:39 [INFO] [stderr] | [INFO] [stderr] 3 | use rlp::{self, RlpStream, Encodable, Decodable, Rlp, Prototype}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Digest` [INFO] [stderr] --> src/merkle/node.rs:157:16 [INFO] [stderr] | [INFO] [stderr] 157 | use sha3::{Digest, Keccak256}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `DatabaseGuard` [INFO] [stderr] --> src/lib.rs:723:17 [INFO] [stderr] | [INFO] [stderr] 723 | use super::{DatabaseGuard, Trie}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/lib.rs:283:74 [INFO] [stderr] | [INFO] [stderr] 283 | let submap = Self::build_submap(1, map.iter().filter(|&(key, value)| { [INFO] [stderr] | ^^^^^ help: consider using `_value` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/lib.rs:296:29 [INFO] [stderr] | [INFO] [stderr] 296 | .filter(|&(key, value)| key.len() == 0).next() [INFO] [stderr] | ^^^^^ help: consider using `_value` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/lib.rs:297:20 [INFO] [stderr] | [INFO] [stderr] 297 | .map(|(key, value)| value.clone()); [INFO] [stderr] | ^^^ help: consider using `_key` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sub_nodes` [INFO] [stderr] --> src/lib.rs:632:44 [INFO] [stderr] | [INFO] [stderr] 632 | MerkleNode::Branch(sub_nodes, sub_additional) => { [INFO] [stderr] | ^^^^^^^^^ help: consider using `_sub_nodes` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sub_additional` [INFO] [stderr] --> src/lib.rs:632:55 [INFO] [stderr] | [INFO] [stderr] 632 | MerkleNode::Branch(sub_nodes, sub_additional) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_sub_additional` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:740:13 [INFO] [stderr] | [INFO] [stderr] 740 | let mut database: HashMap> = HashMap::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:756:13 [INFO] [stderr] | [INFO] [stderr] 756 | let mut database: HashMap> = HashMap::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:776:13 [INFO] [stderr] | [INFO] [stderr] 776 | let mut database: HashMap> = HashMap::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:801:13 [INFO] [stderr] | [INFO] [stderr] 801 | let mut database: HashMap> = HashMap::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:812:13 [INFO] [stderr] | [INFO] [stderr] 812 | let mut database: HashMap> = HashMap::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:825:13 [INFO] [stderr] | [INFO] [stderr] 825 | let mut database: HashMap> = HashMap::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:841:13 [INFO] [stderr] | [INFO] [stderr] 841 | let mut map = HashMap::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:843:13 [INFO] [stderr] | [INFO] [stderr] 843 | let mut database: HashMap> = HashMap::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:854:13 [INFO] [stderr] | [INFO] [stderr] 854 | let mut map = HashMap::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:856:13 [INFO] [stderr] | [INFO] [stderr] 856 | let mut database: HashMap> = HashMap::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:869:13 [INFO] [stderr] | [INFO] [stderr] 869 | let mut map = HashMap::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:871:13 [INFO] [stderr] | [INFO] [stderr] 871 | let mut database: HashMap> = HashMap::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:872:13 [INFO] [stderr] | [INFO] [stderr] 872 | let mut trie: Trie>> = Trie::build(database, &map); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `free` [INFO] [stderr] --> src/database/mod.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn free<'b>(&'b mut self, hash: H256) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `freed` [INFO] [stderr] --> src/database/mod.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | freed: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/merkle/nibble.rs:108:21 [INFO] [stderr] | [INFO] [stderr] 108 | let start_odd = if data[0] & 0b00010000 == 0b00010000 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `data[0] & 0b00010000 == 0b00010000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `vec` [INFO] [stderr] --> src/merkle/nibble.rs:131:18 [INFO] [stderr] | [INFO] [stderr] 131 | for i in 0..vec.len() { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 131 | for (i, ) in vec.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `vec` [INFO] [stderr] --> src/merkle/nibble.rs:144:18 [INFO] [stderr] | [INFO] [stderr] 144 | for i in 0..vec.len() { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 144 | for (i, ) in vec.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/merkle/node.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | Branch([MerkleValue<'a>; 16], Option<&'a [u8]>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/merkle/node.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | Branch([MerkleValue<'a>; 16], Option<&'a [u8]>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `nodes` [INFO] [stderr] --> src/merkle/node.rs:37:26 [INFO] [stderr] | [INFO] [stderr] 37 | for i in 0..16 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 37 | for (i, ) in nodes.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/merkle/node.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | / match self { [INFO] [stderr] 59 | | &MerkleNode::Leaf(ref nibble, ref value) => { [INFO] [stderr] 60 | | MerkleNode::Leaf(nibble.clone(), value.clone()) [INFO] [stderr] 61 | | }, [INFO] [stderr] ... | [INFO] [stderr] 78 | | }, [INFO] [stderr] 79 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 58 | match *self { [INFO] [stderr] 59 | MerkleNode::Leaf(ref nibble, ref value) => { [INFO] [stderr] 60 | MerkleNode::Leaf(nibble.clone(), value.clone()) [INFO] [stderr] 61 | }, [INFO] [stderr] 62 | MerkleNode::Extension(ref nibble, ref value) => { [INFO] [stderr] 63 | MerkleNode::Extension(nibble.clone(), value.clone()) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/merkle/node.rs:60:50 [INFO] [stderr] | [INFO] [stderr] 60 | MerkleNode::Leaf(nibble.clone(), value.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 60 | MerkleNode::Leaf(nibble.clone(), &(*value).clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 60 | MerkleNode::Leaf(nibble.clone(), &[u8]::clone(value)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/merkle/node.rs:74:26 [INFO] [stderr] | [INFO] [stderr] 74 | for i in 0..16 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `cloned_nodes[..16].clone_from_slice(&nodes[..16])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/merkle/node.rs:77:50 [INFO] [stderr] | [INFO] [stderr] 77 | MerkleNode::Branch(cloned_nodes, additional.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*additional` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/merkle/node.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | / match self { [INFO] [stderr] 86 | | &MerkleNode::Leaf(ref nibble, ref value) => { [INFO] [stderr] 87 | | s.begin_list(2); [INFO] [stderr] 88 | | nibble::encode(nibble, NibbleType::Leaf, s); [INFO] [stderr] ... | [INFO] [stderr] 105 | | } [INFO] [stderr] 106 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 85 | match *self { [INFO] [stderr] 86 | MerkleNode::Leaf(ref nibble, ref value) => { [INFO] [stderr] 87 | s.begin_list(2); [INFO] [stderr] 88 | nibble::encode(nibble, NibbleType::Leaf, s); [INFO] [stderr] 89 | value.rlp_append(s); [INFO] [stderr] 90 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `nodes`. [INFO] [stderr] --> src/merkle/node.rs:98:26 [INFO] [stderr] | [INFO] [stderr] 98 | for i in 0..16 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 98 | for in nodes.iter().take(16) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/merkle/node.rs:101:17 [INFO] [stderr] | [INFO] [stderr] 101 | / match value { [INFO] [stderr] 102 | | &Some(ref value) => { value.rlp_append(s); }, [INFO] [stderr] 103 | | &None => { s.append_empty_data(); }, [INFO] [stderr] 104 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 101 | match *value { [INFO] [stderr] 102 | Some(ref value) => { value.rlp_append(s); }, [INFO] [stderr] 103 | None => { s.append_empty_data(); }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/merkle/node.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | / match self { [INFO] [stderr] 138 | | &MerkleValue::Empty => { [INFO] [stderr] 139 | | s.append_empty_data(); [INFO] [stderr] 140 | | }, [INFO] [stderr] ... | [INFO] [stderr] 148 | | }, [INFO] [stderr] 149 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 137 | match *self { [INFO] [stderr] 138 | MerkleValue::Empty => { [INFO] [stderr] 139 | s.append_empty_data(); [INFO] [stderr] 140 | }, [INFO] [stderr] 141 | MerkleValue::Full(ref node) => { [INFO] [stderr] 142 | debug_assert!(node.inlinable()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/database/memory.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | self.0.lock().unwrap().get(&hash).map(|v| v.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.0.lock().unwrap().get(&hash).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: impl for `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/database/mod.rs:50:24 [INFO] [stderr] | [INFO] [stderr] 50 | impl DatabaseGuard for HashMap> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 50 | impl DatabaseGuard for HashMap, S> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / fn get<'a>(&'a self, hash: H256) -> Option> { [INFO] [stderr] 52 | | self.get(&hash).map(|v| v.clone()) [INFO] [stderr] 53 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/database/mod.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | self.get(&hash).map(|v| v.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.get(&hash).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | / fn set<'a>(&'a mut self, hash: H256, value: Vec) { [INFO] [stderr] 56 | | self.insert(hash, value); [INFO] [stderr] 57 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | / pub fn get<'b>(&'b self, hash: H256) -> Option> { [INFO] [stderr] 80 | | if self.cache.borrow().contains_key(&hash) { [INFO] [stderr] 81 | | self.cache.borrow().get(&hash).map(|v| v.clone()) [INFO] [stderr] 82 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 88 | | } [INFO] [stderr] 89 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/database/mod.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | self.cache.borrow().get(&hash).map(|v| v.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.cache.borrow().get(&hash).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | / pub fn set<'b, 'c>(&'b mut self, hash: H256, value: Vec) { [INFO] [stderr] 92 | | self.cache.borrow_mut().insert(hash, value); [INFO] [stderr] 93 | | self.inserted.push(hash); [INFO] [stderr] 94 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/database/mod.rs:91:20 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn set<'b, 'c>(&'b mut self, hash: H256, value: Vec) { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | / pub fn free<'b>(&'b mut self, hash: H256) { [INFO] [stderr] 97 | | self.freed.push(hash); [INFO] [stderr] 98 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | / pub fn inserted<'b>(&'b self) -> &'b [H256] { [INFO] [stderr] 101 | | self.inserted.as_ref() [INFO] [stderr] 102 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/database/mod.rs:104:5 [INFO] [stderr] | [INFO] [stderr] 104 | / pub fn freed<'b>(&'b self) -> &'b [H256] { [INFO] [stderr] 105 | | self.freed.as_ref() [INFO] [stderr] 106 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/iter.rs:160:25 [INFO] [stderr] | [INFO] [stderr] 160 | / match additional { [INFO] [stderr] 161 | | Some(val) => return Some((into_key(&self.prefix), val.into())), [INFO] [stderr] 162 | | None => (), [INFO] [stderr] 163 | | } [INFO] [stderr] | |_________________________^ help: try this: `if let Some(val) = additional { return Some((into_key(&self.prefix), val.into())) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/lib.rs:229:18 [INFO] [stderr] | [INFO] [stderr] 229 | for i in 0..16 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `nodes[..16].clone_from_slice(&old_nodes[..16])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:251:62 [INFO] [stderr] | [INFO] [stderr] 251 | submap.insert(key.split_at(common_len).1.into(), value.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 251 | submap.insert(key.split_at(common_len).1.into(), &(*value).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 251 | submap.insert(key.split_at(common_len).1.into(), &[u8]::clone(value)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:257:12 [INFO] [stderr] | [INFO] [stderr] 257 | if map.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `map.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:263:50 [INFO] [stderr] | [INFO] [stderr] 263 | return MerkleNode::Leaf(key.clone(), map.get(key).unwrap().clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 263 | return MerkleNode::Leaf(key.clone(), &(*map.get(key).unwrap()).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 263 | return MerkleNode::Leaf(key.clone(), &[u8]::clone(map.get(key).unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/lib.rs:270:12 [INFO] [stderr] | [INFO] [stderr] 270 | if common.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!common.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:272:27 [INFO] [stderr] | [INFO] [stderr] 272 | debug_assert!(submap.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!submap.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `nodes` [INFO] [stderr] --> src/lib.rs:280:18 [INFO] [stderr] | [INFO] [stderr] 280 | for i in 0..16 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 280 | for (i, ) in nodes.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:284:17 [INFO] [stderr] | [INFO] [stderr] 284 | key.len() > 0 && key[0] == nibble_index [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!key.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:286:28 [INFO] [stderr] | [INFO] [stderr] 286 | let value = if submap.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `submap.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/lib.rs:295:26 [INFO] [stderr] | [INFO] [stderr] 295 | let additional = map.iter() [INFO] [stderr] | __________________________^ [INFO] [stderr] 296 | | .filter(|&(key, value)| key.len() == 0).next() [INFO] [stderr] | |__________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(|&(key, value)| key.len() == 0).next()` with `find(|&(key, value)| key.len() == 0)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:296:37 [INFO] [stderr] | [INFO] [stderr] 296 | .filter(|&(key, value)| key.len() == 0).next() [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `key.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:297:33 [INFO] [stderr] | [INFO] [stderr] 297 | .map(|(key, value)| value.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 297 | .map(|(key, value)| &(*value).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 297 | .map(|(key, value)| &[u8]::clone(value)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:303:12 [INFO] [stderr] | [INFO] [stderr] 303 | if map.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `map.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:327:25 [INFO] [stderr] | [INFO] [stderr] 327 | fn get_by_value<'a, 'b>(database: &'a mut Change, cache: &'a Cache, nibble: NibbleVec, value: MerkleValue<'a>) -> Option<&'a [u8]> { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:346:24 [INFO] [stderr] | [INFO] [stderr] 346 | fn get_by_node<'a, 'b>(database: &'a mut Change, cache: &'a Cache, nibble: NibbleVec, node: MerkleNode<'a>) -> Option<&'a [u8]> { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/lib.rs:350:26 [INFO] [stderr] | [INFO] [stderr] 350 | Some(node_value.into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `node_value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:365:20 [INFO] [stderr] | [INFO] [stderr] 365 | if nibble.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `nibble.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:366:21 [INFO] [stderr] | [INFO] [stderr] 366 | additional.clone().map(|v| v.into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `additional` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/lib.rs:366:48 [INFO] [stderr] | [INFO] [stderr] 366 | additional.clone().map(|v| v.into()) [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:391:23 [INFO] [stderr] | [INFO] [stderr] 391 | debug_assert!(change.inserted().len() == 0 && change.freed().len() == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `change.inserted().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:391:55 [INFO] [stderr] | [INFO] [stderr] 391 | debug_assert!(change.inserted().len() == 0 && change.freed().len() == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `change.freed().is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:395:28 [INFO] [stderr] | [INFO] [stderr] 395 | fn insert_by_value<'a, 'b: 'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:426:27 [INFO] [stderr] | [INFO] [stderr] 426 | fn insert_by_node<'a, 'b: 'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:433:54 [INFO] [stderr] | [INFO] [stderr] 433 | node_map.insert(node_nibble.clone(), node_value.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 433 | node_map.insert(node_nibble.clone(), &(*node_value).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 433 | node_map.insert(node_nibble.clone(), &[u8]::clone(node_value)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/lib.rs:472:24 [INFO] [stderr] | [INFO] [stderr] 472 | if common.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!common.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:481:20 [INFO] [stderr] | [INFO] [stderr] 481 | if nibble.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `nibble.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:488:47 [INFO] [stderr] | [INFO] [stderr] 488 | MerkleNode::Branch(nodes, node_additional.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*node_additional` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:503:56 [INFO] [stderr] | [INFO] [stderr] 503 | node_map.insert(nibble::from_key(key), value.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 503 | node_map.insert(nibble::from_key(key), &(*value).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 503 | node_map.insert(nibble::from_key(key), &[u8]::clone(value)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:524:28 [INFO] [stderr] | [INFO] [stderr] 524 | fn remove_by_value<'a, 'b: 'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:561:21 [INFO] [stderr] | [INFO] [stderr] 561 | fn collapse<'a, 'b: 'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/lib.rs:614:48 [INFO] [stderr] | [INFO] [stderr] 614 | let (value_index, value) = node_nodes [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 615 | | .iter().enumerate().filter(|&(_, value)| { [INFO] [stderr] 616 | | value != &MerkleValue::Empty [INFO] [stderr] 617 | | }).next() [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/lib.rs:642:27 [INFO] [stderr] | [INFO] [stderr] 642 | fn remove_by_node<'a, 'b: 'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/lib.rs:651:64 [INFO] [stderr] | [INFO] [stderr] 651 | Some(MerkleNode::Leaf(node_nibble.clone(), node_value.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 651 | Some(MerkleNode::Leaf(node_nibble.clone(), &(*node_value).clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 651 | Some(MerkleNode::Leaf(node_nibble.clone(), &[u8]::clone(node_value))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:668:38 [INFO] [stderr] | [INFO] [stderr] 668 | let mut additional = node_additional.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*node_additional` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:670:20 [INFO] [stderr] | [INFO] [stderr] 670 | if nibble.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!nibble.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:733:20 [INFO] [stderr] | [INFO] [stderr] 733 | map.insert("key1aa".as_bytes().into(), "0123456789012345678901234567890123456789xxx".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key1aa"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:733:48 [INFO] [stderr] | [INFO] [stderr] 733 | map.insert("key1aa".as_bytes().into(), "0123456789012345678901234567890123456789xxx".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"0123456789012345678901234567890123456789xxx"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:734:20 [INFO] [stderr] | [INFO] [stderr] 734 | map.insert("key1".as_bytes().into(), "0123456789012345678901234567890123456789Very_Long".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key1"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:734:46 [INFO] [stderr] | [INFO] [stderr] 734 | map.insert("key1".as_bytes().into(), "0123456789012345678901234567890123456789Very_Long".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"0123456789012345678901234567890123456789Very_Long"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:735:20 [INFO] [stderr] | [INFO] [stderr] 735 | map.insert("key2bb".as_bytes().into(), "aval3".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key2bb"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:735:48 [INFO] [stderr] | [INFO] [stderr] 735 | map.insert("key2bb".as_bytes().into(), "aval3".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"aval3"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:736:20 [INFO] [stderr] | [INFO] [stderr] 736 | map.insert("key2".as_bytes().into(), "short".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key2"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:736:46 [INFO] [stderr] | [INFO] [stderr] 736 | map.insert("key2".as_bytes().into(), "short".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"short"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:737:20 [INFO] [stderr] | [INFO] [stderr] 737 | map.insert("key3cc".as_bytes().into(), "aval3".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key3cc"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:737:48 [INFO] [stderr] | [INFO] [stderr] 737 | map.insert("key3cc".as_bytes().into(), "aval3".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"aval3"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:738:20 [INFO] [stderr] | [INFO] [stderr] 738 | map.insert("key3".as_bytes().into(), "1234567890123456789012345678901".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key3"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:738:46 [INFO] [stderr] | [INFO] [stderr] 738 | map.insert("key3".as_bytes().into(), "1234567890123456789012345678901".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"1234567890123456789012345678901"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:744:33 [INFO] [stderr] | [INFO] [stderr] 744 | assert_eq!(trie.get_raw("key2bb".as_bytes()), Some("aval3".as_bytes().into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key2bb"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:744:60 [INFO] [stderr] | [INFO] [stderr] 744 | assert_eq!(trie.get_raw("key2bb".as_bytes()), Some("aval3".as_bytes().into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"aval3"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:745:33 [INFO] [stderr] | [INFO] [stderr] 745 | assert_eq!(trie.get_raw("key2bbb".as_bytes()), None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key2bbb"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:747:25 [INFO] [stderr] | [INFO] [stderr] 747 | trie.insert_raw("key2bbb".as_bytes().into(), "aval4".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key2bbb"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:747:54 [INFO] [stderr] | [INFO] [stderr] 747 | trie.insert_raw("key2bbb".as_bytes().into(), "aval4".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"aval4"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:748:33 [INFO] [stderr] | [INFO] [stderr] 748 | assert_eq!(trie.get_raw("key2bbb".as_bytes()), Some("aval4".as_bytes().into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key2bbb"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:748:61 [INFO] [stderr] | [INFO] [stderr] 748 | assert_eq!(trie.get_raw("key2bbb".as_bytes()), Some("aval4".as_bytes().into())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"aval4"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:749:25 [INFO] [stderr] | [INFO] [stderr] 749 | trie.remove_raw("key2bbb".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key2bbb"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:750:33 [INFO] [stderr] | [INFO] [stderr] 750 | assert_eq!(trie.get_raw("key2bbb".as_bytes()), None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key2bbb"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:759:25 [INFO] [stderr] | [INFO] [stderr] 759 | trie.insert_raw("key1aa".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key1aa"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:760:25 [INFO] [stderr] | [INFO] [stderr] 760 | "0123456789012345678901234567890123456789xxx".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"0123456789012345678901234567890123456789xxx"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:761:25 [INFO] [stderr] | [INFO] [stderr] 761 | trie.insert_raw("key1".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key1"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:762:25 [INFO] [stderr] | [INFO] [stderr] 762 | "0123456789012345678901234567890123456789Very_Long".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"0123456789012345678901234567890123456789Very_Long"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:763:25 [INFO] [stderr] | [INFO] [stderr] 763 | trie.insert_raw("key2bb".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key2bb"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:764:25 [INFO] [stderr] | [INFO] [stderr] 764 | "aval3".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"aval3"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:765:25 [INFO] [stderr] | [INFO] [stderr] 765 | trie.insert_raw("key2".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key2"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:766:25 [INFO] [stderr] | [INFO] [stderr] 766 | "short".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"short"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:767:25 [INFO] [stderr] | [INFO] [stderr] 767 | trie.insert_raw("key3cc".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key3cc"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:768:25 [INFO] [stderr] | [INFO] [stderr] 768 | "aval3".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"aval3"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:769:25 [INFO] [stderr] | [INFO] [stderr] 769 | trie.insert_raw("key3".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"key3"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:770:25 [INFO] [stderr] | [INFO] [stderr] 770 | "1234567890123456789012345678901".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"1234567890123456789012345678901"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:779:25 [INFO] [stderr] | [INFO] [stderr] 779 | trie.insert_raw("doe".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"doe"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:780:25 [INFO] [stderr] | [INFO] [stderr] 780 | "reindeer".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"reindeer"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:781:25 [INFO] [stderr] | [INFO] [stderr] 781 | trie.insert_raw("dog".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"dog"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:782:25 [INFO] [stderr] | [INFO] [stderr] 782 | "puppy".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"puppy"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:783:25 [INFO] [stderr] | [INFO] [stderr] 783 | trie.insert_raw("dogglesworth".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"dogglesworth"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:784:25 [INFO] [stderr] | [INFO] [stderr] 784 | "cat".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"cat"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:787:31 [INFO] [stderr] | [INFO] [stderr] 787 | all_key_values.insert("doe".as_bytes().into(), "reindeer".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"doe"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:787:56 [INFO] [stderr] | [INFO] [stderr] 787 | all_key_values.insert("doe".as_bytes().into(), "reindeer".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"reindeer"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:788:31 [INFO] [stderr] | [INFO] [stderr] 788 | all_key_values.insert("dog".as_bytes().into(), "puppy".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"dog"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:788:56 [INFO] [stderr] | [INFO] [stderr] 788 | all_key_values.insert("dog".as_bytes().into(), "puppy".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"puppy"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:789:31 [INFO] [stderr] | [INFO] [stderr] 789 | all_key_values.insert("dogglesworth".as_bytes().into(), "cat".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"dogglesworth"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:789:65 [INFO] [stderr] | [INFO] [stderr] 789 | all_key_values.insert("dogglesworth".as_bytes().into(), "cat".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"cat"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:804:25 [INFO] [stderr] | [INFO] [stderr] 804 | trie.insert_raw("A".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"A"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:805:21 [INFO] [stderr] | [INFO] [stderr] 805 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:815:25 [INFO] [stderr] | [INFO] [stderr] 815 | trie.insert_raw("test".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"test"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:816:25 [INFO] [stderr] | [INFO] [stderr] 816 | "test".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"test"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:817:25 [INFO] [stderr] | [INFO] [stderr] 817 | trie.insert_raw("te".as_bytes().into(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"te"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:818:25 [INFO] [stderr] | [INFO] [stderr] 818 | "testy".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"testy"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:846:25 [INFO] [stderr] | [INFO] [stderr] 846 | trie.insert_raw("foo".as_bytes().into(), "bar".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"foo"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:846:50 [INFO] [stderr] | [INFO] [stderr] 846 | trie.insert_raw("foo".as_bytes().into(), "bar".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"bar"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:847:25 [INFO] [stderr] | [INFO] [stderr] 847 | trie.insert_raw("food".as_bytes().into(), "bass".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"food"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:847:51 [INFO] [stderr] | [INFO] [stderr] 847 | trie.insert_raw("food".as_bytes().into(), "bass".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"bass"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:859:25 [INFO] [stderr] | [INFO] [stderr] 859 | trie.insert_raw("fooa".as_bytes().into(), "bar".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"fooa"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:859:51 [INFO] [stderr] | [INFO] [stderr] 859 | trie.insert_raw("fooa".as_bytes().into(), "bar".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"bar"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:860:25 [INFO] [stderr] | [INFO] [stderr] 860 | trie.insert_raw("food".as_bytes().into(), "bass".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"food"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:860:51 [INFO] [stderr] | [INFO] [stderr] 860 | trie.insert_raw("food".as_bytes().into(), "bass".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"bass"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:862:25 [INFO] [stderr] | [INFO] [stderr] 862 | trie.insert_raw("fooc".as_bytes().into(), "basss".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"fooc"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:862:51 [INFO] [stderr] | [INFO] [stderr] 862 | trie.insert_raw("fooc".as_bytes().into(), "basss".as_bytes().into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"basss"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lib.rs:863:25 [INFO] [stderr] | [INFO] [stderr] 863 | trie.remove_raw("fooc".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"fooc"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] error: aborting due to 7 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `ethereum-trie-test`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "20f2dfb34856b592e03fe05cad38d6c92c08d5bde09cbc3ccd8e625da79e3501"` [INFO] running `"docker" "rm" "-f" "20f2dfb34856b592e03fe05cad38d6c92c08d5bde09cbc3ccd8e625da79e3501"` [INFO] [stdout] 20f2dfb34856b592e03fe05cad38d6c92c08d5bde09cbc3ccd8e625da79e3501