diff --git a/Cargo.lock b/Cargo.lock index e38a06ab4..83b7514f6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,7 +3,7 @@ name = "parity" version = "1.4.0" dependencies = [ "ansi_term 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "clippy 0.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "clippy 0.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "ctrlc 1.1.1 (git+https://github.com/ethcore/rust-ctrlc.git)", "daemonize 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "docopt 0.6.80 (registry+https://github.com/rust-lang/crates.io-index)", @@ -138,15 +138,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "clippy" -version = "0.0.85" +version = "0.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "clippy_lints 0.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "clippy_lints 0.0.90 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "clippy_lints" -version = "0.0.85" +version = "0.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -268,7 +268,7 @@ version = "1.4.0" dependencies = [ "bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "bloomchain 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "clippy 0.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "clippy 0.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "ethash 1.4.0", @@ -287,7 +287,7 @@ dependencies = [ "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rayon 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rlp 0.1.0", "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", @@ -309,7 +309,7 @@ dependencies = [ name = "ethcore-dapps" version = "1.4.0" dependencies = [ - "clippy 0.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "clippy 0.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "ethabi 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "ethcore-devtools 1.4.0", "ethcore-rpc 1.4.0", @@ -451,7 +451,7 @@ dependencies = [ name = "ethcore-rpc" version = "1.4.0" dependencies = [ - "clippy 0.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "clippy 0.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "ethash 1.4.0", "ethcore 1.4.0", "ethcore-devtools 1.4.0", @@ -479,7 +479,7 @@ dependencies = [ name = "ethcore-signer" version = "1.4.0" dependencies = [ - "clippy 0.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "clippy 0.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "ethcore-devtools 1.4.0", "ethcore-io 1.4.0", @@ -517,7 +517,8 @@ version = "1.4.0" dependencies = [ "ansi_term 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", - "clippy 0.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "bigint 0.1.0", + "clippy 0.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "elastic-array 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "eth-secp256k1 0.5.4 (git+https://github.com/ethcore/rust-secp256k1)", @@ -603,7 +604,7 @@ dependencies = [ name = "ethsync" version = "1.4.0" dependencies = [ - "clippy 0.0.85 (registry+https://github.com/rust-lang/crates.io-index)", + "clippy 0.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "ethcore 1.4.0", "ethcore-io 1.4.0", @@ -1307,7 +1308,7 @@ dependencies = [ [[package]] name = "rayon" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1863,8 +1864,8 @@ dependencies = [ "checksum bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c129aff112dcc562970abb69e2508b40850dd24c274761bb50fb8a0067ba6c27" "checksum bytes 0.4.0-dev (git+https://github.com/carllerche/bytes)" = "" "checksum cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de1e760d7b6535af4241fca8bd8adf68e2e7edacc6b29f5d399050c5e48cf88c" -"checksum clippy 0.0.85 (registry+https://github.com/rust-lang/crates.io-index)" = "97f6d6efa6d7aec74d4eca1be62164b605d43b7fcb5256e9db0449f685130cba" -"checksum clippy_lints 0.0.85 (registry+https://github.com/rust-lang/crates.io-index)" = "dc96d3c877b63943b08ce3037c0ae8fd3bd5dead5fab11178b93afc71ca16031" +"checksum clippy 0.0.90 (registry+https://github.com/rust-lang/crates.io-index)" = "d19bda68c3db98e3a780342f6101b44312fef20a5f13ce756d1202a35922b01b" +"checksum clippy_lints 0.0.90 (registry+https://github.com/rust-lang/crates.io-index)" = "3d4ed67c69b9bb35169be2538691d290a3aa0cbfd4b9f0bfb7c221fc1d399a96" "checksum cookie 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90266f45846f14a1e986c77d1e9c2626b8c342ed806fe60241ec38cc8697b245" "checksum crossbeam 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "fb974f835e90390c5f9dfac00f05b06dc117299f5ea4e85fbc7bb443af4911cc" "checksum ctrlc 1.1.1 (git+https://github.com/ethcore/rust-ctrlc.git)" = "" @@ -1950,7 +1951,7 @@ dependencies = [ "checksum quick-error 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0aad603e8d7fb67da22dbdf1f4b826ce8829e406124109e73cf1b2454b93a71c" "checksum quine-mc_cluskey 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6683b0e23d80813b1a535841f0048c1537d3f86d63c999e8373b39a9b0eb74a" "checksum rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "2791d88c6defac799c3f20d74f094ca33b9332612d9aef9078519c82e4fe04a5" -"checksum rayon 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "941deb43a6254b9867fec1e0caeda38a2ad905ab18c57f7c68c396ca68998c07" +"checksum rayon 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "655df67c314c30fa3055a365eae276eb88aa4f3413a352a1ab32c1320eda41ea" "checksum regex 0.1.68 (registry+https://github.com/rust-lang/crates.io-index)" = "b4329b8928a284580a1c63ec9d846b12f6d3472317243ff7077aff11f23f2b29" "checksum regex-syntax 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "841591b1e05609a643e3b4d0045fce04f701daba7151ddcd3ad47b080693d5a9" "checksum ring 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d059a6a96d3be79042e3f70eb97945912839265f9d8ab45b921abaf266c70dbb" diff --git a/Cargo.toml b/Cargo.toml index 476212b27..913b4c5f2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ ethcore-logger = { path = "logger" } rlp = { path = "util/rlp" } json-ipc-server = { git = "https://github.com/ethcore/json-ipc-server.git" } ethcore-dapps = { path = "dapps", optional = true } -clippy = { version = "0.0.85", optional = true} +clippy = { version = "0.0.90", optional = true} ethcore-stratum = { path = "stratum" } [target.'cfg(windows)'.dependencies] diff --git a/dapps/Cargo.toml b/dapps/Cargo.toml index 742d59bf2..b1883e748 100644 --- a/dapps/Cargo.toml +++ b/dapps/Cargo.toml @@ -33,7 +33,7 @@ parity-dapps-status = { git = "https://github.com/ethcore/parity-ui.git", versio parity-dapps-home = { git = "https://github.com/ethcore/parity-ui.git", version = "1.4" } parity-dapps-wallet = { git = "https://github.com/ethcore/parity-ui.git", version = "1.4", optional = true } mime_guess = { version = "1.6.1" } -clippy = { version = "0.0.85", optional = true} +clippy = { version = "0.0.90", optional = true} [build-dependencies] serde_codegen = { version = "0.8", optional = true } diff --git a/db/Cargo.toml b/db/Cargo.toml index c7cbba2ea..15ceb9b3b 100644 --- a/db/Cargo.toml +++ b/db/Cargo.toml @@ -11,7 +11,7 @@ build = "build.rs" ethcore-ipc-codegen = { path = "../ipc/codegen" } [dependencies] -clippy = { version = "0.0.85", optional = true} +clippy = { version = "0.0.90", optional = true} ethcore-devtools = { path = "../devtools" } ethcore-ipc = { path = "../ipc/rpc" } rocksdb = { git = "https://github.com/ethcore/rust-rocksdb" } diff --git a/ethcore/Cargo.toml b/ethcore/Cargo.toml index fe6a682cb..3ad9e69c4 100644 --- a/ethcore/Cargo.toml +++ b/ethcore/Cargo.toml @@ -20,12 +20,12 @@ num_cpus = "0.2" crossbeam = "0.2.9" lazy_static = "0.2" bloomchain = "0.1" -rayon = "0.3.1" +rayon = "0.4.2" semver = "0.2" bit-set = "0.4" time = "0.1" evmjit = { path = "../evmjit", optional = true } -clippy = { version = "0.0.85", optional = true} +clippy = { version = "0.0.90", optional = true} ethash = { path = "../ethash" } ethcore-util = { path = "../util" } ethcore-io = { path = "../util/io" } diff --git a/ethcore/src/block.rs b/ethcore/src/block.rs index 0b42d6838..88894618c 100644 --- a/ethcore/src/block.rs +++ b/ethcore/src/block.rs @@ -417,7 +417,7 @@ impl ClosedBlock { } /// Given an engine reference, reopen the `ClosedBlock` into an `OpenBlock`. - pub fn reopen<'a>(self, engine: &'a Engine) -> OpenBlock<'a> { + pub fn reopen(self, engine: &Engine) -> OpenBlock { // revert rewards (i.e. set state back at last transaction's state). let mut block = self.block; block.state = self.unclosed_state; diff --git a/ethcore/src/blockchain/blockchain.rs b/ethcore/src/blockchain/blockchain.rs index 9c15e477e..392581fd1 100644 --- a/ethcore/src/blockchain/blockchain.rs +++ b/ethcore/src/blockchain/blockchain.rs @@ -1617,7 +1617,7 @@ mod tests { let mut block_header = bc.block_header(&best_hash); while !block_header.is_none() { - block_header = bc.block_header(&block_header.unwrap().parent_hash()); + block_header = bc.block_header(block_header.unwrap().parent_hash()); } assert!(bc.cache_size().blocks > 1024 * 1024); diff --git a/ethcore/src/ethereum/ethash.rs b/ethcore/src/ethereum/ethash.rs index 4d25f812a..216ebed17 100644 --- a/ethcore/src/ethereum/ethash.rs +++ b/ethcore/src/ethereum/ethash.rs @@ -160,7 +160,7 @@ impl Engine for Ethash { let fields = block.fields_mut(); // Bestow block reward - fields.state.add_balance(&fields.header.author(), &(reward + reward / U256::from(32) * U256::from(fields.uncles.len()))); + fields.state.add_balance(fields.header.author(), &(reward + reward / U256::from(32) * U256::from(fields.uncles.len()))); // Bestow uncle rewards let current_number = fields.header.number(); diff --git a/ethcore/src/miner/miner.rs b/ethcore/src/miner/miner.rs index 1f2d461eb..73c1c9cf9 100644 --- a/ethcore/src/miner/miner.rs +++ b/ethcore/src/miner/miner.rs @@ -246,6 +246,7 @@ impl Miner { self.sealing_work.lock().queue.peek_last_ref().map(|b| b.base().clone()) } + #[cfg_attr(feature="dev", allow(match_same_arms))] /// Prepares new block for sealing including top transactions from queue. fn prepare_block(&self, chain: &MiningBlockChainClient) -> (ClosedBlock, Option) { { @@ -369,7 +370,7 @@ impl Miner { /// Attempts to perform internal sealing (one that does not require work) to return Ok(sealed), /// Err(Some(block)) returns for unsuccesful sealing while Err(None) indicates misspecified engine. - fn seal_block_internally(&self, block: ClosedBlock) -> Result> { + fn seal_block_internally(&self, block: ClosedBlock) -> Result> { trace!(target: "miner", "seal_block_internally: block has transaction - attempting internal seal."); let s = self.engine.generate_seal(block.block(), match self.accounts { Some(ref x) => Some(&**x), @@ -672,6 +673,7 @@ impl MinerService for Miner { results } + #[cfg_attr(feature="dev", allow(collapsible_if))] fn import_own_transaction( &self, chain: &MiningBlockChainClient, diff --git a/ethcore/src/miner/transaction_queue.rs b/ethcore/src/miner/transaction_queue.rs index 4b1e8abec..af054aa98 100644 --- a/ethcore/src/miner/transaction_queue.rs +++ b/ethcore/src/miner/transaction_queue.rs @@ -949,7 +949,7 @@ mod test { new_tx_pair(default_nonce(), default_gas_price(), nonce_increment, gas_price_increment) } - /// Returns two transactions with identical (sender, nonce) but different gas_price/hash. + /// Returns two transactions with identical (sender, nonce) but different gas price/hash. fn new_similar_tx_pair() -> (SignedTransaction, SignedTransaction) { new_tx_pair_default(0.into(), 1.into()) } diff --git a/ethcore/src/snapshot/tests/helpers.rs b/ethcore/src/snapshot/tests/helpers.rs index 34c57df67..42fb68220 100644 --- a/ethcore/src/snapshot/tests/helpers.rs +++ b/ethcore/src/snapshot/tests/helpers.rs @@ -45,6 +45,7 @@ impl StateProducer { } } + #[cfg_attr(feature="dev", allow(let_and_return))] /// Tick the state producer. This alters the state, writing new data into /// the database. pub fn tick(&mut self, rng: &mut R, db: &mut HashDB) { diff --git a/ethcore/src/spec/spec.rs b/ethcore/src/spec/spec.rs index a6b5ad649..00676cef7 100644 --- a/ethcore/src/spec/spec.rs +++ b/ethcore/src/spec/spec.rs @@ -183,7 +183,7 @@ impl Spec { let r = Rlp::new(&seal); (0..self.seal_fields).map(|i| r.at(i).as_raw().to_vec()).collect() }); - return header; + header } /// Compose the genesis block for this chain. @@ -278,7 +278,7 @@ mod tests { // https://github.com/ethcore/parity/issues/1840 #[test] fn test_load_empty() { - assert!(Spec::load(&vec![] as &[u8]).is_err()); + assert!(Spec::load(&[] as &[u8]).is_err()); } #[test] diff --git a/ethcore/src/state/mod.rs b/ethcore/src/state/mod.rs index 7a3b7b7ee..8c7e49ba3 100644 --- a/ethcore/src/state/mod.rs +++ b/ethcore/src/state/mod.rs @@ -1314,13 +1314,13 @@ fn storage_at_from_database() { let temp = RandomTempPath::new(); let (root, db) = { let mut state = get_temp_state_in(temp.as_path()); - state.set_storage(&a, H256::from(&U256::from(01u64)), H256::from(&U256::from(69u64))); + state.set_storage(&a, H256::from(&U256::from(1u64)), H256::from(&U256::from(69u64))); state.commit().unwrap(); state.drop() }; let s = State::from_existing(db, root, U256::from(0u8), Default::default()).unwrap(); - assert_eq!(s.storage_at(&a, &H256::from(&U256::from(01u64))), H256::from(&U256::from(69u64))); + assert_eq!(s.storage_at(&a, &H256::from(&U256::from(1u64))), H256::from(&U256::from(69u64))); } #[test] diff --git a/json/Cargo.toml b/json/Cargo.toml index 3c66e1317..90c36cedc 100644 --- a/json/Cargo.toml +++ b/json/Cargo.toml @@ -10,7 +10,7 @@ rustc-serialize = "0.3" serde = "0.8" serde_json = "0.8" serde_macros = { version = "0.8", optional = true } -clippy = { version = "0.0.85", optional = true} +clippy = { version = "0.0.90", optional = true} [build-dependencies] serde_codegen = { version = "0.8", optional = true } diff --git a/parity/boot.rs b/parity/boot.rs index 0b0e6b670..d930085db 100644 --- a/parity/boot.rs +++ b/parity/boot.rs @@ -54,12 +54,10 @@ pub fn payload() -> Result { let mut buffer = Vec::new(); try!( - io::stdin().read_to_end(&mut buffer) - .map_err(|io_err| BootError::ReadArgs(io_err)) + io::stdin().read_to_end(&mut buffer).map_err(BootError::ReadArgs) ); - ipc::binary::deserialize::(&buffer) - .map_err(|binary_error| BootError::DecodeArgs(binary_error)) + ipc::binary::deserialize::(&buffer).map_err(BootError::DecodeArgs) } pub fn register(hv_url: &str, control_url: &str, module_id: IpcModuleId) -> GuardedSocket>{ @@ -73,7 +71,7 @@ pub fn register(hv_url: &str, control_url: &str, module_id: IpcModuleId) -> Guar pub fn dependency>(url: &str) -> Result, BootError> { - nanoipc::generic_client::(url).map_err(|socket_err| BootError::DependencyConnect(socket_err)) + nanoipc::generic_client::(url).map_err(BootError::DependencyConnect) } pub fn main_thread() -> Arc { diff --git a/parity/cli/usage.rs b/parity/cli/usage.rs index 6ff6c254e..da406d36a 100644 --- a/parity/cli/usage.rs +++ b/parity/cli/usage.rs @@ -169,14 +169,10 @@ macro_rules! usage { let result = rustc_serialize::Decodable::decode(&mut toml::Decoder::new(toml::Value::Table(value))); match result { Ok(config) => Ok(config), - Err(e) => { - return Err(e.into()); - } + Err(e) => Err(e.into()), } }, - None => { - return Err(ArgsError::Parsing(value_parser.errors)); - }, + None => Err(ArgsError::Parsing(value_parser.errors)), } } diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 8bb16007f..440e41fc9 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -27,7 +27,7 @@ rlp = { path = "../util/rlp" } rustc-serialize = "0.3" transient-hashmap = "0.1" serde_macros = { version = "0.8.0", optional = true } -clippy = { version = "0.0.85", optional = true} +clippy = { version = "0.0.90", optional = true} json-ipc-server = { git = "https://github.com/ethcore/json-ipc-server.git" } ethcore-ipc = { path = "../ipc/rpc" } time = "0.1" diff --git a/signer/Cargo.toml b/signer/Cargo.toml index 8b7268dde..3d0e76896 100644 --- a/signer/Cargo.toml +++ b/signer/Cargo.toml @@ -22,7 +22,7 @@ ethcore-rpc = { path = "../rpc" } ethcore-devtools = { path = "../devtools" } parity-dapps-signer = { git = "https://github.com/ethcore/parity-ui.git", version = "1.4", optional = true} -clippy = { version = "0.0.85", optional = true} +clippy = { version = "0.0.90", optional = true} [features] dev = ["clippy"] diff --git a/signer/src/ws_server/mod.rs b/signer/src/ws_server/mod.rs index 6d332adbe..57223ccd9 100644 --- a/signer/src/ws_server/mod.rs +++ b/signer/src/ws_server/mod.rs @@ -127,7 +127,7 @@ impl Server { // Spawn a thread with event loop let handle = thread::spawn(move || { ph.catch_panic(move || { - match ws.listen(addr.clone()).map_err(ServerError::from) { + match ws.listen(addr).map_err(ServerError::from) { Err(ServerError::IoError(io)) => die(format!( "Signer: Could not start listening on specified address. Make sure that no other instance is running on Signer's port. Details: {:?}", io diff --git a/sync/Cargo.toml b/sync/Cargo.toml index a73077c9c..99c522075 100644 --- a/sync/Cargo.toml +++ b/sync/Cargo.toml @@ -17,7 +17,7 @@ ethcore-network = { path = "../util/network" } ethcore-io = { path = "../util/io" } ethcore = { path = "../ethcore" } rlp = { path = "../util/rlp" } -clippy = { version = "0.0.85", optional = true} +clippy = { version = "0.0.90", optional = true} log = "0.3" env_logger = "0.3" time = "0.1.34" diff --git a/sync/src/chain.rs b/sync/src/chain.rs index ea5e593f3..2e47b5617 100644 --- a/sync/src/chain.rs +++ b/sync/src/chain.rs @@ -426,7 +426,7 @@ impl ChainSync { self.request_snapshot_manifest(io, peer_id); self.state = SyncState::SnapshotManifest; } - + /// Restart sync after bad block has been detected. May end up re-downloading up to QUEUE_SIZE blocks fn restart_on_bad_block(&mut self, io: &mut SyncIo) { // Do not assume that the block queue/chain still has our last_imported_block @@ -807,7 +807,7 @@ impl ChainSync { } let manifest_rlp = try!(r.at(0)); - let manifest = match ManifestData::from_rlp(&manifest_rlp.as_raw()) { + let manifest = match ManifestData::from_rlp(manifest_rlp.as_raw()) { Err(e) => { trace!(target: "sync", "{}: Ignored bad manifest: {:?}", peer_id, e); io.disconnect_peer(peer_id); @@ -995,8 +995,8 @@ impl ChainSync { self.request_snapshot_data(io, peer_id); } }, - SyncState::SnapshotManifest => (), //already downloading from other peer - SyncState::Waiting | SyncState::SnapshotWaiting => () + SyncState::SnapshotManifest | //already downloading from other peer + SyncState::Waiting | SyncState::SnapshotWaiting => () } } } @@ -1439,8 +1439,7 @@ impl ChainSync { }, None => { trace!(target: "sync", "{}: No manifest to return", peer_id); - let rlp = RlpStream::new_list(0); - rlp + RlpStream::new_list(0) } }; Ok(Some((SNAPSHOT_MANIFEST_PACKET, rlp))) @@ -1457,8 +1456,7 @@ impl ChainSync { rlp }, None => { - let rlp = RlpStream::new_list(0); - rlp + RlpStream::new_list(0) } }; Ok(Some((SNAPSHOT_DATA_PACKET, rlp))) @@ -1543,6 +1541,7 @@ impl ChainSync { }) } + #[cfg_attr(feature="dev", allow(match_same_arms))] pub fn maintain_peers(&mut self, io: &mut SyncIo) { let tick = time::precise_time_s(); let mut aborting = Vec::new(); @@ -1712,7 +1711,7 @@ impl ChainSync { return 0; } - let all_transactions_hashes = transactions.iter().map(|ref tx| tx.hash()).collect::>(); + let all_transactions_hashes = transactions.iter().map(|tx| tx.hash()).collect::>(); let all_transactions_rlp = { let mut packet = RlpStream::new_list(transactions.len()); for tx in &transactions { packet.append(tx); } @@ -1862,8 +1861,8 @@ mod tests { fn return_receipts_empty() { let mut client = TestBlockChainClient::new(); let mut queue = VecDeque::new(); - let mut ss = TestSnapshotService::new(); - let io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let io = TestIo::new(&mut client, &ss, &mut queue, None); let result = ChainSync::return_receipts(&io, &UntrustedRlp::new(&[0xc0]), 0); @@ -1875,8 +1874,8 @@ mod tests { let mut client = TestBlockChainClient::new(); let mut queue = VecDeque::new(); let sync = dummy_sync_with_peer(H256::new(), &client); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let mut receipt_list = RlpStream::new_list(4); receipt_list.append(&H256::from("0000000000000000000000000000000000000000000000005555555555555555")); @@ -1931,8 +1930,8 @@ mod tests { let hashes: Vec<_> = headers.iter().map(|h| HeaderView::new(h).sha3()).collect(); let mut queue = VecDeque::new(); - let mut ss = TestSnapshotService::new(); - let io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let io = TestIo::new(&mut client, &ss, &mut queue, None); let unknown: H256 = H256::new(); let result = ChainSync::return_block_headers(&io, &UntrustedRlp::new(&make_hash_req(&unknown, 1, 0, false)), 0); @@ -1970,8 +1969,8 @@ mod tests { let mut client = TestBlockChainClient::new(); let mut queue = VecDeque::new(); let sync = dummy_sync_with_peer(H256::new(), &client); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let mut node_list = RlpStream::new_list(3); node_list.append(&H256::from("0000000000000000000000000000000000000000000000005555555555555555")); @@ -2026,8 +2025,8 @@ mod tests { let mut queue = VecDeque::new(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(10), &client); let chain_info = client.chain_info(); - let mut ss = TestSnapshotService::new(); - let io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let io = TestIo::new(&mut client, &ss, &mut queue, None); let lagging_peers = sync.get_lagging_peers(&chain_info, &io); @@ -2058,8 +2057,8 @@ mod tests { let mut queue = VecDeque::new(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(5), &client); let chain_info = client.chain_info(); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let peers = sync.get_lagging_peers(&chain_info, &io); let peer_count = sync.propagate_new_hashes(&chain_info, &mut io, &peers); @@ -2079,8 +2078,8 @@ mod tests { let mut queue = VecDeque::new(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(5), &client); let chain_info = client.chain_info(); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let peers = sync.get_lagging_peers(&chain_info, &io); let peer_count = sync.propagate_blocks(&chain_info, &mut io, &[], &peers); @@ -2100,8 +2099,8 @@ mod tests { let hash = client.block_hash(BlockID::Number(99)).unwrap(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(5), &client); let chain_info = client.chain_info(); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let peers = sync.get_lagging_peers(&chain_info, &io); let peer_count = sync.propagate_blocks(&chain_info, &mut io, &[hash.clone()], &peers); @@ -2120,8 +2119,8 @@ mod tests { client.insert_transaction_to_queue(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(1), &client); let mut queue = VecDeque::new(); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let peer_count = sync.propagate_new_transactions(&mut io); // Try to propagate same transactions for the second time let peer_count2 = sync.propagate_new_transactions(&mut io); @@ -2142,8 +2141,8 @@ mod tests { client.insert_transaction_to_queue(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(1), &client); let mut queue = VecDeque::new(); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let peer_count = sync.propagate_new_transactions(&mut io); sync.chain_new_blocks(&mut io, &[], &[], &[], &[], &[]); // Try to propagate same transactions for the second time @@ -2166,17 +2165,17 @@ mod tests { client.insert_transaction_to_queue(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(1), &client); let mut queue = VecDeque::new(); - let mut ss = TestSnapshotService::new(); + let ss = TestSnapshotService::new(); // should sent some { - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let peer_count = sync.propagate_new_transactions(&mut io); assert_eq!(1, io.queue.len()); assert_eq!(1, peer_count); } // Insert some more client.insert_transaction_to_queue(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); // Propagate new transactions let peer_count2 = sync.propagate_new_transactions(&mut io); // And now the peer should have all transactions @@ -2202,8 +2201,8 @@ mod tests { let mut queue = VecDeque::new(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(5), &client); //sync.have_common_block = true; - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let block = UntrustedRlp::new(&block_data); @@ -2221,8 +2220,8 @@ mod tests { let mut queue = VecDeque::new(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(5), &client); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let block = UntrustedRlp::new(&block_data); @@ -2237,8 +2236,8 @@ mod tests { client.add_blocks(10, EachBlockWith::Uncle); let mut queue = VecDeque::new(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(5), &client); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let empty_data = vec![]; let block = UntrustedRlp::new(&empty_data); @@ -2254,8 +2253,8 @@ mod tests { client.add_blocks(10, EachBlockWith::Uncle); let mut queue = VecDeque::new(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(5), &client); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let hashes_data = get_dummy_hashes(); let hashes_rlp = UntrustedRlp::new(&hashes_data); @@ -2271,8 +2270,8 @@ mod tests { client.add_blocks(10, EachBlockWith::Uncle); let mut queue = VecDeque::new(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(5), &client); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let empty_hashes_data = vec![]; let hashes_rlp = UntrustedRlp::new(&empty_hashes_data); @@ -2291,8 +2290,8 @@ mod tests { let mut queue = VecDeque::new(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(5), &client); let chain_info = client.chain_info(); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let peers = sync.get_lagging_peers(&chain_info, &io); sync.propagate_new_hashes(&chain_info, &mut io, &peers); @@ -2311,8 +2310,8 @@ mod tests { let mut queue = VecDeque::new(); let mut sync = dummy_sync_with_peer(client.block_hash_delta_minus(5), &client); let chain_info = client.chain_info(); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); let peers = sync.get_lagging_peers(&chain_info, &io); sync.propagate_blocks(&chain_info, &mut io, &[], &peers); @@ -2346,8 +2345,8 @@ mod tests { // when { let mut queue = VecDeque::new(); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); io.chain.miner.chain_new_blocks(io.chain, &[], &[], &[], &good_blocks); sync.chain_new_blocks(&mut io, &[], &[], &[], &good_blocks, &[]); assert_eq!(io.chain.miner.status().transactions_in_future_queue, 0); @@ -2361,8 +2360,8 @@ mod tests { } { let mut queue = VecDeque::new(); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); io.chain.miner.chain_new_blocks(io.chain, &[], &[], &good_blocks, &retracted_blocks); sync.chain_new_blocks(&mut io, &[], &[], &good_blocks, &retracted_blocks, &[]); } @@ -2386,8 +2385,8 @@ mod tests { let retracted_blocks = vec![client.block_hash_delta_minus(1)]; let mut queue = VecDeque::new(); - let mut ss = TestSnapshotService::new(); - let mut io = TestIo::new(&mut client, &mut ss, &mut queue, None); + let ss = TestSnapshotService::new(); + let mut io = TestIo::new(&mut client, &ss, &mut queue, None); // when sync.chain_new_blocks(&mut io, &[], &[], &[], &good_blocks, &[]); diff --git a/sync/src/tests/snapshot.rs b/sync/src/tests/snapshot.rs index b27602b0d..adbb3ce48 100644 --- a/sync/src/tests/snapshot.rs +++ b/sync/src/tests/snapshot.rs @@ -74,14 +74,14 @@ impl SnapshotService for TestSnapshotService { } fn status(&self) -> RestorationStatus { - match &*self.restoration_manifest.lock() { - &Some(ref manifest) if self.state_restoration_chunks.lock().len() == manifest.state_hashes.len() && + match *self.restoration_manifest.lock() { + Some(ref manifest) if self.state_restoration_chunks.lock().len() == manifest.state_hashes.len() && self.block_restoration_chunks.lock().len() == manifest.block_hashes.len() => RestorationStatus::Inactive, - &Some(_) => RestorationStatus::Ongoing { + Some(_) => RestorationStatus::Ongoing { state_chunks_done: self.state_restoration_chunks.lock().len() as u32, block_chunks_done: self.block_restoration_chunks.lock().len() as u32, }, - &None => RestorationStatus::Inactive, + None => RestorationStatus::Inactive, } } @@ -98,13 +98,13 @@ impl SnapshotService for TestSnapshotService { } fn restore_state_chunk(&self, hash: H256, chunk: Bytes) { - if self.restoration_manifest.lock().as_ref().map_or(false, |ref m| m.state_hashes.iter().any(|h| h == &hash)) { + if self.restoration_manifest.lock().as_ref().map_or(false, |m| m.state_hashes.iter().any(|h| h == &hash)) { self.state_restoration_chunks.lock().insert(hash, chunk); } } fn restore_block_chunk(&self, hash: H256, chunk: Bytes) { - if self.restoration_manifest.lock().as_ref().map_or(false, |ref m| m.block_hashes.iter().any(|h| h == &hash)) { + if self.restoration_manifest.lock().as_ref().map_or(false, |m| m.block_hashes.iter().any(|h| h == &hash)) { self.block_restoration_chunks.lock().insert(hash, chunk); } } diff --git a/util/Cargo.toml b/util/Cargo.toml index 45c5e6f8e..81916555c 100644 --- a/util/Cargo.toml +++ b/util/Cargo.toml @@ -23,7 +23,7 @@ rlp = { path = "rlp" } heapsize = { version = "0.3", features = ["unstable"] } itertools = "0.4" sha3 = { path = "sha3" } -clippy = { version = "0.0.85", optional = true} +clippy = { version = "0.0.90", optional = true} ethcore-devtools = { path = "../devtools" } libc = "0.2.7" vergen = "0.1" diff --git a/util/network/Cargo.toml b/util/network/Cargo.toml index 50ef6a5e4..0a3dfeff9 100644 --- a/util/network/Cargo.toml +++ b/util/network/Cargo.toml @@ -14,7 +14,7 @@ time = "0.1.34" tiny-keccak = "1.0" rust-crypto = "0.2.34" slab = "0.2" -clippy = { version = "0.0.85", optional = true} +clippy = { version = "0.0.90", optional = true} igd = "0.5.0" libc = "0.2.7" parking_lot = "0.2.6" diff --git a/util/src/kvdb.rs b/util/src/kvdb.rs index 3a89ae293..708b8d870 100644 --- a/util/src/kvdb.rs +++ b/util/src/kvdb.rs @@ -330,8 +330,8 @@ impl Database { /// Commit buffered changes to database. pub fn flush(&self) -> Result<(), String> { - match &*self.db.read() { - &Some(DBAndColumns { ref db, ref cfs }) => { + match *self.db.read() { + Some(DBAndColumns { ref db, ref cfs }) => { let batch = WriteBatch::new(); let mut overlay = self.overlay.write(); @@ -366,15 +366,15 @@ impl Database { } db.write_opt(batch, &self.write_opts) }, - &None => Err("Database is closed".to_owned()) + None => Err("Database is closed".to_owned()) } } /// Commit transaction to database. pub fn write(&self, tr: DBTransaction) -> Result<(), String> { - match &*self.db.read() { - &Some(DBAndColumns { ref db, ref cfs }) => { + match *self.db.read() { + Some(DBAndColumns { ref db, ref cfs }) => { let batch = WriteBatch::new(); let ops = tr.ops; for op in ops { @@ -393,14 +393,14 @@ impl Database { } db.write_opt(batch, &self.write_opts) }, - &None => Err("Database is closed".to_owned()) + None => Err("Database is closed".to_owned()) } } /// Get value by key. pub fn get(&self, col: Option, key: &[u8]) -> Result, String> { - match &*self.db.read() { - &Some(DBAndColumns { ref db, ref cfs }) => { + match *self.db.read() { + Some(DBAndColumns { ref db, ref cfs }) => { let overlay = &self.overlay.read()[Self::to_overlay_column(col)]; match overlay.get(key) { Some(&KeyState::Insert(ref value)) | Some(&KeyState::InsertCompressed(ref value)) => Ok(Some(value.clone())), @@ -412,15 +412,15 @@ impl Database { }, } }, - &None => Ok(None), + None => Ok(None), } } /// Get value by partial key. Prefix size should match configured prefix size. Only searches flushed values. // TODO: support prefix seek for unflushed data pub fn get_by_prefix(&self, col: Option, prefix: &[u8]) -> Option> { - match &*self.db.read() { - &Some(DBAndColumns { ref db, ref cfs }) => { + match *self.db.read() { + Some(DBAndColumns { ref db, ref cfs }) => { let mut iter = col.map_or_else(|| db.iterator(IteratorMode::From(prefix, Direction::Forward)), |c| db.iterator_cf(cfs[c as usize], IteratorMode::From(prefix, Direction::Forward)).unwrap()); match iter.next() { @@ -429,19 +429,19 @@ impl Database { _ => None } }, - &None => None, + None => None, } } /// Get database iterator for flushed data. pub fn iter(&self, col: Option) -> DatabaseIterator { //TODO: iterate over overlay - match &*self.db.read() { - &Some(DBAndColumns { ref db, ref cfs }) => { + match *self.db.read() { + Some(DBAndColumns { ref db, ref cfs }) => { col.map_or_else(|| DatabaseIterator { iter: db.iterator(IteratorMode::Start) }, |c| DatabaseIterator { iter: db.iterator_cf(cfs[c as usize], IteratorMode::Start).unwrap() }) }, - &None => panic!("Not supported yet") //TODO: return an empty iterator or change return type + None => panic!("Not supported yet") //TODO: return an empty iterator or change return type } } diff --git a/util/src/trie/recorder.rs b/util/src/trie/recorder.rs index a48f277b4..2f1d926f0 100644 --- a/util/src/trie/recorder.rs +++ b/util/src/trie/recorder.rs @@ -63,6 +63,12 @@ pub struct BasicRecorder { min_depth: u32, } +impl Default for BasicRecorder { + fn default() -> Self { + BasicRecorder::new() + } +} + impl BasicRecorder { /// Create a new `BasicRecorder` which records all given nodes. #[inline] @@ -233,4 +239,4 @@ mod tests { ] ]); } -} \ No newline at end of file +} diff --git a/util/src/trie/triedb.rs b/util/src/trie/triedb.rs index 88a3399e7..99ef1f118 100644 --- a/util/src/trie/triedb.rs +++ b/util/src/trie/triedb.rs @@ -128,7 +128,7 @@ impl<'db> TrieDB<'db> { } /// Get the root node's RLP. - fn root_node<'a, R: 'a + Recorder>(&self, r: &'a mut R) -> super::Result { + fn root_node(&self, r: &mut R) -> super::Result { self.root_data(r).map(Node::decoded) }