[INFO] crate evm 0.9.4 is already in cache
[INFO] extracting crate evm 0.9.4 into work/ex/clippy-test-run/sources/stable/reg/evm/0.9.4
[INFO] extracting crate evm 0.9.4 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/evm/0.9.4
[INFO] validating manifest of evm-0.9.4 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 evm-0.9.4 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 evm-0.9.4
[INFO] finished frobbing evm-0.9.4
[INFO] frobbed toml for evm-0.9.4 written to work/ex/clippy-test-run/sources/stable/reg/evm/0.9.4/Cargo.toml
[INFO] started frobbing evm-0.9.4
[INFO] finished frobbing evm-0.9.4
[INFO] frobbed toml for evm-0.9.4 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/evm/0.9.4/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 evm-0.9.4 against stable for clippy-test-run
[INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/evm/0.9.4:/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] 96b639091ae89077d0b01713061627935a50bf82fa9b65c39efbef654d445469
[INFO] running `"docker" "start" "-a" "96b639091ae89077d0b01713061627935a50bf82fa9b65c39efbef654d445469"`
[INFO] [stderr] Checking ethereum-hexutil v0.2.3
[INFO] [stderr] Checking crypto-mac v0.4.0
[INFO] [stderr] Checking sha3 v0.6.0
[INFO] [stderr] Checking ripemd160 v0.6.0
[INFO] [stderr] Checking hmac v0.4.2
[INFO] [stderr] Checking ethereum-rlp v0.2.3
[INFO] [stderr] Checking hmac-drbg v0.1.2
[INFO] [stderr] Checking libsecp256k1 v0.1.15
[INFO] [stderr] Checking ethereum-bigint v0.2.9
[INFO] [stderr] Checking ethereum-bloom v0.2.1
[INFO] [stderr] Checking ethereum-trie v0.3.8
[INFO] [stderr] Checking ethereum-block-core v0.1.0
[INFO] [stderr] Checking ethereum-block v0.3.5
[INFO] [stderr] Checking evm v0.9.4 (/opt/crater/workdir)
[INFO] [stderr] warning: redundant field names in struct initialization
[INFO] [stderr] --> src/eval/run/system.rs:42:9
[INFO] [stderr] |
[INFO] [stderr] 42 | data: data,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data`
[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/eval/run/system.rs:43:9
[INFO] [stderr] |
[INFO] [stderr] 43 | topics: topics,
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `topics`
[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/eval/run/system.rs:86:9
[INFO] [stderr] |
[INFO] [stderr] 86 | value: value,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value`
[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/eval/run/system.rs:113:9
[INFO] [stderr] |
[INFO] [stderr] 113 | gas_limit: gas_limit,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gas_limit`
[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/eval/run/system.rs:114:9
[INFO] [stderr] |
[INFO] [stderr] 114 | value: value,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value`
[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/eval/run/system.rs:115:9
[INFO] [stderr] |
[INFO] [stderr] 115 | input: input,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input`
[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/eval/run/system.rs:144:9
[INFO] [stderr] |
[INFO] [stderr] 144 | gas_limit: gas_limit,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gas_limit`
[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/eval/run/system.rs:146:9
[INFO] [stderr] |
[INFO] [stderr] 146 | input: input,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input`
[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/commit/account.rs:37:13
[INFO] [stderr] |
[INFO] [stderr] 37 | partial: partial,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `partial`
[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/commit/account.rs:38:13
[INFO] [stderr] |
[INFO] [stderr] 38 | address: address,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address`
[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/transaction.rs:98:17
[INFO] [stderr] |
[INFO] [stderr] 98 | nonce: nonce,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nonce`
[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/transaction.rs:153:13
[INFO] [stderr] |
[INFO] [stderr] 153 | nonce: nonce,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nonce`
[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/transaction.rs:290:13
[INFO] [stderr] |
[INFO] [stderr] 290 | block: block,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block`
[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/transaction.rs:303:13
[INFO] [stderr] |
[INFO] [stderr] 303 | transaction: transaction,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `transaction`
[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/transaction.rs:304:13
[INFO] [stderr] |
[INFO] [stderr] 304 | block: block,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block`
[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/transaction.rs:317:13
[INFO] [stderr] |
[INFO] [stderr] 317 | transaction: transaction,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `transaction`
[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/transaction.rs:318:13
[INFO] [stderr] |
[INFO] [stderr] 318 | block: block,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block`
[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/eval/run/system.rs:42:9
[INFO] [stderr] |
[INFO] [stderr] 42 | data: data,
[INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data`
[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/eval/run/system.rs:43:9
[INFO] [stderr] |
[INFO] [stderr] 43 | topics: topics,
[INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `topics`
[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/eval/run/system.rs:86:9
[INFO] [stderr] |
[INFO] [stderr] 86 | value: value,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value`
[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/eval/run/system.rs:113:9
[INFO] [stderr] |
[INFO] [stderr] 113 | gas_limit: gas_limit,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gas_limit`
[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/eval/run/system.rs:114:9
[INFO] [stderr] |
[INFO] [stderr] 114 | value: value,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value`
[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/eval/run/system.rs:115:9
[INFO] [stderr] |
[INFO] [stderr] 115 | input: input,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input`
[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/eval/run/system.rs:144:9
[INFO] [stderr] |
[INFO] [stderr] 144 | gas_limit: gas_limit,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gas_limit`
[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/eval/run/system.rs:146:9
[INFO] [stderr] |
[INFO] [stderr] 146 | input: input,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input`
[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/commit/account.rs:37:13
[INFO] [stderr] |
[INFO] [stderr] 37 | partial: partial,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `partial`
[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/commit/account.rs:38:13
[INFO] [stderr] |
[INFO] [stderr] 38 | address: address,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address`
[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/transaction.rs:98:17
[INFO] [stderr] |
[INFO] [stderr] 98 | nonce: nonce,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nonce`
[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/transaction.rs:153:13
[INFO] [stderr] |
[INFO] [stderr] 153 | nonce: nonce,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nonce`
[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/transaction.rs:290:13
[INFO] [stderr] |
[INFO] [stderr] 290 | block: block,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block`
[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/transaction.rs:303:13
[INFO] [stderr] |
[INFO] [stderr] 303 | transaction: transaction,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `transaction`
[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/transaction.rs:304:13
[INFO] [stderr] |
[INFO] [stderr] 304 | block: block,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block`
[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/transaction.rs:317:13
[INFO] [stderr] |
[INFO] [stderr] 317 | transaction: transaction,
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `transaction`
[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/transaction.rs:318:13
[INFO] [stderr] |
[INFO] [stderr] 318 | block: block,
[INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block`
[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: unneeded return statement
[INFO] [stderr] --> src/pc.rs:77:9
[INFO] [stderr] |
[INFO] [stderr] 77 | return true;
[INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true`
[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: returning the result of a let binding from a block. Consider returning the expression directly.
[INFO] [stderr] --> src/eval/cost.rs:155:5
[INFO] [stderr] |
[INFO] [stderr] 155 | next
[INFO] [stderr] | ^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default
[INFO] [stderr] note: this expression can be directly returned
[INFO] [stderr] --> src/eval/cost.rs:114:16
[INFO] [stderr] |
[INFO] [stderr] 114 | let next = match instruction {
[INFO] [stderr] | ________________^
[INFO] [stderr] 115 | | Instruction::SHA3 | Instruction::RETURN | Instruction::LOG(_) => {
[INFO] [stderr] 116 | | let from: U256 = stack.peek(0).unwrap().into();
[INFO] [stderr] 117 | | let len: U256 = stack.peek(1).unwrap().into();
[INFO] [stderr] ... |
[INFO] [stderr] 153 | | }
[INFO] [stderr] 154 | | };
[INFO] [stderr] | |_____^
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/eval/mod.rs:240:9
[INFO] [stderr] |
[INFO] [stderr] 240 | return false;
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:256:50
[INFO] [stderr] |
[INFO] [stderr] 256 | Some(&AccountChange::Full { .. }) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:257:52
[INFO] [stderr] |
[INFO] [stderr] 257 | Some(&AccountChange::Create { .. }) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:258:50
[INFO] [stderr] |
[INFO] [stderr] 258 | Some(&AccountChange::Nonexist(_)) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:259:18
[INFO] [stderr] |
[INFO] [stderr] 259 | _ => return Err(RequireError::Account(address)),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::Account(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:271:50
[INFO] [stderr] |
[INFO] [stderr] 271 | Some(&AccountChange::Full { .. }) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:272:52
[INFO] [stderr] |
[INFO] [stderr] 272 | Some(&AccountChange::Create { .. }) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:273:50
[INFO] [stderr] |
[INFO] [stderr] 273 | Some(&AccountChange::Nonexist(_)) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:274:18
[INFO] [stderr] |
[INFO] [stderr] 274 | _ => return Err(RequireError::AccountCode(address)),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::AccountCode(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: this `else { if .. }` block can be collapsed
[INFO] [stderr] --> src/commit/account.rs:379:24
[INFO] [stderr] |
[INFO] [stderr] 379 | } else {
[INFO] [stderr] | ________________________^
[INFO] [stderr] 380 | | if self.premarked_exists.contains(&address) {
[INFO] [stderr] 381 | | AccountChange::Create {
[INFO] [stderr] 382 | | nonce: A::initial_nonce(),
[INFO] [stderr] ... |
[INFO] [stderr] 390 | | }
[INFO] [stderr] 391 | | };
[INFO] [stderr] | |_________________^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if
[INFO] [stderr] help: try
[INFO] [stderr] |
[INFO] [stderr] 379 | } else if self.premarked_exists.contains(&address) {
[INFO] [stderr] 380 | AccountChange::Create {
[INFO] [stderr] 381 | nonce: A::initial_nonce(),
[INFO] [stderr] 382 | address,
[INFO] [stderr] 383 | balance: U256::zero(),
[INFO] [stderr] 384 | storage: Storage::new(address, false),
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:456:13
[INFO] [stderr] |
[INFO] [stderr] 456 | return Ok(self.codes.get(&address).unwrap().clone());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(self.codes.get(&address).unwrap().clone())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:458:13
[INFO] [stderr] |
[INFO] [stderr] 458 | return Err(RequireError::AccountCode(address));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::AccountCode(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:482:9
[INFO] [stderr] |
[INFO] [stderr] 482 | return Err(RequireError::Account(address));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::Account(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:505:9
[INFO] [stderr] |
[INFO] [stderr] 505 | return Err(RequireError::Account(address));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::Account(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:525:9
[INFO] [stderr] |
[INFO] [stderr] 525 | return Err(RequireError::Account(address));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::Account(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:563:9
[INFO] [stderr] |
[INFO] [stderr] 563 | return Err(RequireError::Account(address));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::Account(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/transaction.rs:106:9
[INFO] [stderr] |
[INFO] [stderr] 106 | return Ok(valid);
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(valid)`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/transaction.rs:199:9
[INFO] [stderr] |
[INFO] [stderr] 199 | return gas;
[INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `gas`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/pc.rs:77:9
[INFO] [stderr] |
[INFO] [stderr] 77 | return true;
[INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true`
[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: returning the result of a let binding from a block. Consider returning the expression directly.
[INFO] [stderr] --> src/eval/cost.rs:155:5
[INFO] [stderr] |
[INFO] [stderr] 155 | next
[INFO] [stderr] | ^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default
[INFO] [stderr] note: this expression can be directly returned
[INFO] [stderr] --> src/eval/cost.rs:114:16
[INFO] [stderr] |
[INFO] [stderr] 114 | let next = match instruction {
[INFO] [stderr] | ________________^
[INFO] [stderr] 115 | | Instruction::SHA3 | Instruction::RETURN | Instruction::LOG(_) => {
[INFO] [stderr] 116 | | let from: U256 = stack.peek(0).unwrap().into();
[INFO] [stderr] 117 | | let len: U256 = stack.peek(1).unwrap().into();
[INFO] [stderr] ... |
[INFO] [stderr] 153 | | }
[INFO] [stderr] 154 | | };
[INFO] [stderr] | |_____^
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/eval/mod.rs:240:9
[INFO] [stderr] |
[INFO] [stderr] 240 | return false;
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:256:50
[INFO] [stderr] |
[INFO] [stderr] 256 | Some(&AccountChange::Full { .. }) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:257:52
[INFO] [stderr] |
[INFO] [stderr] 257 | Some(&AccountChange::Create { .. }) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:258:50
[INFO] [stderr] |
[INFO] [stderr] 258 | Some(&AccountChange::Nonexist(_)) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:259:18
[INFO] [stderr] |
[INFO] [stderr] 259 | _ => return Err(RequireError::Account(address)),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::Account(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:271:50
[INFO] [stderr] |
[INFO] [stderr] 271 | Some(&AccountChange::Full { .. }) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:272:52
[INFO] [stderr] |
[INFO] [stderr] 272 | Some(&AccountChange::Create { .. }) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:273:50
[INFO] [stderr] |
[INFO] [stderr] 273 | Some(&AccountChange::Nonexist(_)) => return Ok(()),
[INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:274:18
[INFO] [stderr] |
[INFO] [stderr] 274 | _ => return Err(RequireError::AccountCode(address)),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::AccountCode(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: this `else { if .. }` block can be collapsed
[INFO] [stderr] --> src/commit/account.rs:379:24
[INFO] [stderr] |
[INFO] [stderr] 379 | } else {
[INFO] [stderr] | ________________________^
[INFO] [stderr] 380 | | if self.premarked_exists.contains(&address) {
[INFO] [stderr] 381 | | AccountChange::Create {
[INFO] [stderr] 382 | | nonce: A::initial_nonce(),
[INFO] [stderr] ... |
[INFO] [stderr] 390 | | }
[INFO] [stderr] 391 | | };
[INFO] [stderr] | |_________________^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if
[INFO] [stderr] help: try
[INFO] [stderr] |
[INFO] [stderr] 379 | } else if self.premarked_exists.contains(&address) {
[INFO] [stderr] 380 | AccountChange::Create {
[INFO] [stderr] 381 | nonce: A::initial_nonce(),
[INFO] [stderr] 382 | address,
[INFO] [stderr] 383 | balance: U256::zero(),
[INFO] [stderr] 384 | storage: Storage::new(address, false),
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:456:13
[INFO] [stderr] |
[INFO] [stderr] 456 | return Ok(self.codes.get(&address).unwrap().clone());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(self.codes.get(&address).unwrap().clone())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:458:13
[INFO] [stderr] |
[INFO] [stderr] 458 | return Err(RequireError::AccountCode(address));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::AccountCode(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:482:9
[INFO] [stderr] |
[INFO] [stderr] 482 | return Err(RequireError::Account(address));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::Account(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:505:9
[INFO] [stderr] |
[INFO] [stderr] 505 | return Err(RequireError::Account(address));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::Account(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:525:9
[INFO] [stderr] |
[INFO] [stderr] 525 | return Err(RequireError::Account(address));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::Account(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/commit/account.rs:563:9
[INFO] [stderr] |
[INFO] [stderr] 563 | return Err(RequireError::Account(address));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(RequireError::Account(address))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/transaction.rs:106:9
[INFO] [stderr] |
[INFO] [stderr] 106 | return Ok(valid);
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(valid)`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stderr]
[INFO] [stderr] warning: unneeded return statement
[INFO] [stderr] --> src/transaction.rs:199:9
[INFO] [stderr] |
[INFO] [stderr] 199 | return gas;
[INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `gas`
[INFO] [stderr] |
[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: `full`
[INFO] [stderr] --> src/commit/account.rs:44:5
[INFO] [stderr] |
[INFO] [stderr] 44 | fn full(address: Address) -> Self {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(dead_code)] on by default
[INFO] [stderr]
[INFO] [stderr] warning: item `memory::SeqMemory
` has a public `len` method but no corresponding `is_empty` method
[INFO] [stderr] --> src/memory.rs:52:1
[INFO] [stderr] |
[INFO] [stderr] 52 | / impl SeqMemory {
[INFO] [stderr] 53 | | pub fn len(&self) -> usize {
[INFO] [stderr] 54 | | self.memory.len()
[INFO] [stderr] 55 | | }
[INFO] [stderr] 56 | | }
[INFO] [stderr] | |_^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty
[INFO] [stderr]
[INFO] [stderr] warning: the loop variable `i` is used to index `a`
[INFO] [stderr] --> src/memory.rs:110:18
[INFO] [stderr] |
[INFO] [stderr] 110 | for i in 0..32 {
[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] 110 | for (i, - ) in a.iter_mut().enumerate() {
[INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: item `stack::Stack` has a public `len` method but no corresponding `is_empty` method
[INFO] [stderr] --> src/stack.rs:22:1
[INFO] [stderr] |
[INFO] [stderr] 22 | / impl Stack {
[INFO] [stderr] 23 | | /// Check a pop-push cycle. If the check succeeded, `push`, `pop`,
[INFO] [stderr] 24 | | /// `set`, `peek` within the limit should not fail.
[INFO] [stderr] 25 | | pub fn check_pop_push(&self, pop: usize, push: usize) -> Result<(), OnChainError> {
[INFO] [stderr] ... |
[INFO] [stderr] 81 | | }
[INFO] [stderr] 82 | | }
[INFO] [stderr] | |_^
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty
[INFO] [stderr]
[INFO] [stderr] warning: item `pc::Valids` has a public `len` method but no corresponding `is_empty` method
[INFO] [stderr] --> src/pc.rs:39:1
[INFO] [stderr] |
[INFO] [stderr] 39 | / impl Valids {
[INFO] [stderr] 40 | | pub fn new(code: &[u8]) -> Self {
[INFO] [stderr] 41 | | let mut valids: Vec = Vec::with_capacity(code.len());
[INFO] [stderr] 42 | | valids.resize(code.len(), false);
[INFO] [stderr] ... |
[INFO] [stderr] 78 | | }
[INFO] [stderr] 79 | | }
[INFO] [stderr] | |_^
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:50:21
[INFO] [stderr] |
[INFO] [stderr] 50 | i = i + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:56:21
[INFO] [stderr] |
[INFO] [stderr] 56 | i = i + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:128:21
[INFO] [stderr] |
[INFO] [stderr] 128 | i = i + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:131:13
[INFO] [stderr] |
[INFO] [stderr] 131 | o = o + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `o += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:314:21
[INFO] [stderr] |
[INFO] [stderr] 314 | i = i + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:317:13
[INFO] [stderr] |
[INFO] [stderr] 317 | o = o + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `o += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:439:17
[INFO] [stderr] |
[INFO] [stderr] 439 | *self.position = *self.position + 1;
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `*self.position += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:50:5
[INFO] [stderr] |
[INFO] [stderr] 50 | Gas::from(P::gas_call()) + xfer_cost(machine, instruction) + new_cost(machine, instruction)
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_call()`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:77:5
[INFO] [stderr] |
[INFO] [stderr] 77 | Gas::from(P::gas_suicide()) + if !machine.account_state.exists(address).unwrap() {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_suicide()`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:78:9
[INFO] [stderr] |
[INFO] [stderr] 78 | Gas::from(P::gas_suicide_new_account())
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_suicide_new_account()`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:105:5
[INFO] [stderr] |
[INFO] [stderr] 105 | (Gas::from(G_MEMORY) * a + a * a / Gas::from(512u64)).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(Gas::from(G_MEMORY) * a + a * a / Gas::from(512u64))`
[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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead
[INFO] [stderr] --> src/eval/cost.rs:111:9
[INFO] [stderr] |
[INFO] [stderr] 111 | let ref stack = state.stack;
[INFO] [stderr] | ----^^^^^^^^^--------------- help: try: `let stack = &state.stack;`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg
[INFO] [stderr]
[INFO] [stderr] warning: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:171:13
[INFO] [stderr] |
[INFO] [stderr] 171 | (Gas::from(G_SHA3) + Gas::from(G_SHA3WORD) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) }).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(Gas::from(G_SHA3) + Gas::from(G_SHA3WORD) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) })`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:176:13
[INFO] [stderr] |
[INFO] [stderr] 176 | (Gas::from(G_LOG) + Gas::from(G_LOGDATA) * Gas::from(len) + Gas::from(G_LOGTOPIC) * Gas::from(v)).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(Gas::from(G_LOG) + Gas::from(G_LOGDATA) * Gas::from(len) + Gas::from(G_LOGTOPIC) * Gas::from(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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:183:13
[INFO] [stderr] |
[INFO] [stderr] 183 | (Gas::from(P::gas_extcode()) + Gas::from(G_COPY) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) }).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(Gas::from(P::gas_extcode()) + Gas::from(G_COPY) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) })`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:183:14
[INFO] [stderr] |
[INFO] [stderr] 183 | (Gas::from(P::gas_extcode()) + Gas::from(G_COPY) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) }).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_extcode()`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:190:13
[INFO] [stderr] |
[INFO] [stderr] 190 | (Gas::from(G_VERYLOW) + Gas::from(G_COPY) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) }).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(Gas::from(G_VERYLOW) + Gas::from(G_COPY) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) })`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:197:36
[INFO] [stderr] |
[INFO] [stderr] 197 | Gas::from(G_EXP) + Gas::from(P::gas_expbyte()) * (Gas::from(1u64) + Gas::from(state.stack.peek(1).unwrap().log2floor()) / Gas::from(8u64))
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_expbyte()`
[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: The function/method `copy_from_memory` doesn't need a mutable reference
[INFO] [stderr] --> src/eval/run/mod.rs:174:71
[INFO] [stderr] |
[INFO] [stderr] 174 | state.out = Rc::new(copy_from_memory(&mut state.memory, start, len));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/eval/util.rs:60:9
[INFO] [stderr] |
[INFO] [stderr] 60 | j = j + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `j += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: large size difference between variants
[INFO] [stderr] --> src/eval/mod.rs:124:5
[INFO] [stderr] |
[INFO] [stderr] 124 | InvokeCall(Context, (U256, U256)),
[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/eval/mod.rs:124:5
[INFO] [stderr] |
[INFO] [stderr] 124 | InvokeCall(Context, (U256, U256)),
[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: large size difference between variants
[INFO] [stderr] --> src/eval/mod.rs:139:5
[INFO] [stderr] |
[INFO] [stderr] 139 | InvokeCall(Context, (U256, U256)),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum
[INFO] [stderr] --> src/eval/mod.rs:139:5
[INFO] [stderr] |
[INFO] [stderr] 139 | InvokeCall(Context, (U256, U256)),
[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: you don't need to add `&` to both the expression and the patterns
[INFO] [stderr] --> src/eval/mod.rs:276:9
[INFO] [stderr] |
[INFO] [stderr] 276 | / match &self.status {
[INFO] [stderr] 277 | | &MachineStatus::Running => (),
[INFO] [stderr] 278 | | _ => panic!(),
[INFO] [stderr] 279 | | }
[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: try
[INFO] [stderr] |
[INFO] [stderr] 276 | match self.status {
[INFO] [stderr] 277 | MachineStatus::Running => (),
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: item `commit::account::Storage` has a public `len` method but no corresponding `is_empty` method
[INFO] [stderr] --> src/commit/account.rs:33:1
[INFO] [stderr] |
[INFO] [stderr] 33 | / impl Storage {
[INFO] [stderr] 34 | | /// Create a new storage.
[INFO] [stderr] 35 | | fn new(address: Address, partial: bool) -> Self {
[INFO] [stderr] 36 | | Storage {
[INFO] [stderr] ... |
[INFO] [stderr] 86 | | }
[INFO] [stderr] 87 | | }
[INFO] [stderr] | |_^
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:130:9
[INFO] [stderr] |
[INFO] [stderr] 130 | / match self {
[INFO] [stderr] 131 | | &AccountCommitment::Full {
[INFO] [stderr] 132 | | address,
[INFO] [stderr] 133 | | ..
[INFO] [stderr] ... |
[INFO] [stderr] 143 | | &AccountCommitment::Nonexist(address) => address,
[INFO] [stderr] 144 | | }
[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] 130 | match *self {
[INFO] [stderr] 131 | AccountCommitment::Full {
[INFO] [stderr] 132 | address,
[INFO] [stderr] 133 | ..
[INFO] [stderr] 134 | } => address,
[INFO] [stderr] 135 | AccountCommitment::Code {
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:187:9
[INFO] [stderr] |
[INFO] [stderr] 187 | / match self {
[INFO] [stderr] 188 | | &AccountChange::Full {
[INFO] [stderr] 189 | | address,
[INFO] [stderr] 190 | | ..
[INFO] [stderr] ... |
[INFO] [stderr] 198 | | &AccountChange::Nonexist(address) => address,
[INFO] [stderr] 199 | | }
[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] 187 | match *self {
[INFO] [stderr] 188 | AccountChange::Full {
[INFO] [stderr] 189 | address,
[INFO] [stderr] 190 | ..
[INFO] [stderr] 191 | } => address,
[INFO] [stderr] 192 | AccountChange::IncreaseBalance(address, _) => address,
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: you seem to want to iterate on a map's keys
[INFO] [stderr] --> src/commit/account.rs:241:29
[INFO] [stderr] |
[INFO] [stderr] 241 | for (address, _) in &self.codes {
[INFO] [stderr] | ^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map
[INFO] [stderr] help: use the corresponding method
[INFO] [stderr] |
[INFO] [stderr] 241 | for address in self.codes.keys() {
[INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:422:17
[INFO] [stderr] |
[INFO] [stderr] 422 | / match val {
[INFO] [stderr] 423 | | &mut AccountChange::Nonexist(_) => (),
[INFO] [stderr] 424 | | // The above matches all cases in enum. FIXME when
[INFO] [stderr] 425 | | // there're more AccountChange variants added.
[INFO] [stderr] 426 | | _ => unreachable!(),
[INFO] [stderr] 427 | | }
[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] 422 | match *val {
[INFO] [stderr] 423 | AccountChange::Nonexist(_) => (),
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:446:13
[INFO] [stderr] |
[INFO] [stderr] 446 | / match self.accounts.get(&address).unwrap() {
[INFO] [stderr] 447 | | &AccountChange::Full { ref code, .. } => return Ok(code.clone()),
[INFO] [stderr] 448 | | &AccountChange::Create { ref code, .. } => return Ok(code.clone()),
[INFO] [stderr] 449 | | &AccountChange::Nonexist(_) => return Ok(Rc::new(Vec::new())),
[INFO] [stderr] 450 | | &AccountChange::IncreaseBalance(_, _) => (),
[INFO] [stderr] 451 | | &AccountChange::DecreaseBalance(_, _) => (),
[INFO] [stderr] 452 | | }
[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] 446 | match *self.accounts.get(&address).unwrap() {
[INFO] [stderr] 447 | AccountChange::Full { ref code, .. } => return Ok(code.clone()),
[INFO] [stderr] 448 | AccountChange::Create { ref code, .. } => return Ok(code.clone()),
[INFO] [stderr] 449 | AccountChange::Nonexist(_) => return Ok(Rc::new(Vec::new())),
[INFO] [stderr] 450 | AccountChange::IncreaseBalance(_, _) => (),
[INFO] [stderr] 451 | AccountChange::DecreaseBalance(_, _) => (),
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise
[INFO] [stderr] --> src/commit/account.rs:446:19
[INFO] [stderr] |
[INFO] [stderr] 446 | match self.accounts.get(&address).unwrap() {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.accounts[&address]`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap
[INFO] [stderr]
[INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise
[INFO] [stderr] --> src/commit/account.rs:456:23
[INFO] [stderr] |
[INFO] [stderr] 456 | return Ok(self.codes.get(&address).unwrap().clone());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.codes[&address]`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:466:13
[INFO] [stderr] |
[INFO] [stderr] 466 | / match self.accounts.get(&address).unwrap() {
[INFO] [stderr] 467 | | &AccountChange::Full {
[INFO] [stderr] 468 | | nonce,
[INFO] [stderr] 469 | | ..
[INFO] [stderr] ... |
[INFO] [stderr] 478 | | _ => (),
[INFO] [stderr] 479 | | }
[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] 466 | match *self.accounts.get(&address).unwrap() {
[INFO] [stderr] 467 | AccountChange::Full {
[INFO] [stderr] 468 | nonce,
[INFO] [stderr] 469 | ..
[INFO] [stderr] 470 | } => return Ok(nonce),
[INFO] [stderr] 471 | AccountChange::Create {
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise
[INFO] [stderr] --> src/commit/account.rs:466:19
[INFO] [stderr] |
[INFO] [stderr] 466 | match self.accounts.get(&address).unwrap() {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.accounts[&address]`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:489:13
[INFO] [stderr] |
[INFO] [stderr] 489 | / match self.accounts.get(&address).unwrap() {
[INFO] [stderr] 490 | | &AccountChange::Full {
[INFO] [stderr] 491 | | balance,
[INFO] [stderr] 492 | | ..
[INFO] [stderr] ... |
[INFO] [stderr] 501 | | _ => (),
[INFO] [stderr] 502 | | }
[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] 489 | match *self.accounts.get(&address).unwrap() {
[INFO] [stderr] 490 | AccountChange::Full {
[INFO] [stderr] 491 | balance,
[INFO] [stderr] 492 | ..
[INFO] [stderr] 493 | } => return Ok(balance),
[INFO] [stderr] 494 | AccountChange::Create {
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise
[INFO] [stderr] --> src/commit/account.rs:489:19
[INFO] [stderr] |
[INFO] [stderr] 489 | match self.accounts.get(&address).unwrap() {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.accounts[&address]`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:511:13
[INFO] [stderr] |
[INFO] [stderr] 511 | / match self.accounts.get(&address).unwrap() {
[INFO] [stderr] 512 | | &AccountChange::Full {
[INFO] [stderr] 513 | | ref changing_storage,
[INFO] [stderr] 514 | | ..
[INFO] [stderr] ... |
[INFO] [stderr] 521 | | _ => (),
[INFO] [stderr] 522 | | }
[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] 511 | match *self.accounts.get(&address).unwrap() {
[INFO] [stderr] 512 | AccountChange::Full {
[INFO] [stderr] 513 | ref changing_storage,
[INFO] [stderr] 514 | ..
[INFO] [stderr] 515 | } => return changing_storage.read(index),
[INFO] [stderr] 516 | AccountChange::Create {
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise
[INFO] [stderr] --> src/commit/account.rs:511:19
[INFO] [stderr] |
[INFO] [stderr] 511 | match self.accounts.get(&address).unwrap() {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.accounts[&address]`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:543:21
[INFO] [stderr] |
[INFO] [stderr] 543 | / match val {
[INFO] [stderr] 544 | | &mut AccountChange::Nonexist(_) => { is_nonexist = true; }
[INFO] [stderr] 545 | | _ => { is_nonexist = false; }
[INFO] [stderr] 546 | | }
[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] 543 | match *val {
[INFO] [stderr] 544 | AccountChange::Nonexist(_) => { is_nonexist = true; }
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:612:9
[INFO] [stderr] |
[INFO] [stderr] 612 | / match self.accounts.get_mut(&address).unwrap() {
[INFO] [stderr] 613 | | &mut AccountChange::Create { ref mut code, .. } => {
[INFO] [stderr] 614 | | *code = new_code;
[INFO] [stderr] 615 | | },
[INFO] [stderr] 616 | | _ => panic!(),
[INFO] [stderr] 617 | | }
[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] 612 | match *self.accounts.get_mut(&address).unwrap() {
[INFO] [stderr] 613 | AccountChange::Create { ref mut code, .. } => {
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:773:17
[INFO] [stderr] |
[INFO] [stderr] 773 | / match val {
[INFO] [stderr] 774 | | &mut AccountChange::Nonexist(_) => { is_nonexist = true; }
[INFO] [stderr] 775 | | _ => { is_nonexist = false; }
[INFO] [stderr] 776 | | }
[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] 773 | match *val {
[INFO] [stderr] 774 | AccountChange::Nonexist(_) => { is_nonexist = true; }
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: it looks like you're manually copying between slices
[INFO] [stderr] --> src/patch/precompiled.rs:111:18
[INFO] [stderr] |
[INFO] [stderr] 111 | for i in 0..min(datao.len(), 128) {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `data[..min(datao.len(), 128)].clone_from_slice(&datao[..min(datao.len(), 128)])`
[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: the loop variable `i` is only used to index `ret`.
[INFO] [stderr] --> src/patch/precompiled.rs:116:26
[INFO] [stderr] |
[INFO] [stderr] 116 | for i in 0..12 {
[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] 116 | for
- in ret.iter_mut().take(12) {
[INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: it looks like you're manually copying between slices
[INFO] [stderr] --> src/patch/precompiled.rs:168:14
[INFO] [stderr] |
[INFO] [stderr] 168 | for i in 0..32 {
[INFO] [stderr] | ^^^^^ help: try replacing the loop by: `message_raw[..32].clone_from_slice(&data[..32])`
[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] warning: it looks like you're manually copying between slices
[INFO] [stderr] --> src/patch/precompiled.rs:178:14
[INFO] [stderr] |
[INFO] [stderr] 178 | for i in 0..64 {
[INFO] [stderr] | ^^^^^ help: try replacing the loop by: `sig_raw[..64].clone_from_slice(&data[64..(64 + 64)])`
[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] warning: using `clone` on a `Copy` type
[INFO] [stderr] --> src/transaction.rs:95:25
[INFO] [stderr] |
[INFO] [stderr] 95 | action: self.action.clone(),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.action`
[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: using `clone` on a `Copy` type
[INFO] [stderr] --> src/transaction.rs:150:21
[INFO] [stderr] |
[INFO] [stderr] 150 | action: transaction.action.clone(),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `transaction.action`
[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: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:182:41
[INFO] [stderr] |
[INFO] [stderr] 182 | self.action.address(self.caller.unwrap_or(system_address!()), self.nonce)
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| system_address!())`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: identical conversion
[INFO] [stderr] --> src/transaction.rs:190:25
[INFO] [stderr] |
[INFO] [stderr] 190 | gas = gas + Gas::from(P::gas_transaction_create());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_transaction_create()`
[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: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:223:41
[INFO] [stderr] |
[INFO] [stderr] 223 | caller: self.caller.unwrap_or(system_address!()),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| system_address!())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:229:36
[INFO] [stderr] |
[INFO] [stderr] 229 | origin: origin.unwrap_or(self.caller.unwrap_or(system_address!())),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.caller.unwrap_or(system_address!()))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:229:58
[INFO] [stderr] |
[INFO] [stderr] 229 | origin: origin.unwrap_or(self.caller.unwrap_or(system_address!())),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| system_address!())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:243:41
[INFO] [stderr] |
[INFO] [stderr] 243 | caller: self.caller.unwrap_or(system_address!()),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| system_address!())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:249:36
[INFO] [stderr] |
[INFO] [stderr] 249 | origin: origin.unwrap_or(self.caller.unwrap_or(system_address!())),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.caller.unwrap_or(system_address!()))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:249:58
[INFO] [stderr] |
[INFO] [stderr] 249 | origin: origin.unwrap_or(self.caller.unwrap_or(system_address!())),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| system_address!())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[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/lib.rs:216:9
[INFO] [stderr] |
[INFO] [stderr] 216 | / match self.machines.last().unwrap().status().clone() {
[INFO] [stderr] 217 | | MachineStatus::ExitedNotSupported(err) => return VMStatus::ExitedNotSupported(err),
[INFO] [stderr] 218 | | _ => (),
[INFO] [stderr] 219 | | }
[INFO] [stderr] | |_________^ help: try this: `if let MachineStatus::ExitedNotSupported(err) = self.machines.last().unwrap().status().clone() { return VMStatus::ExitedNotSupported(err) }`
[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: identical conversion
[INFO] [stderr] --> src/lib.rs:224:66
[INFO] [stderr] |
[INFO] [stderr] 224 | MachineStatus::ExitedErr(err) => VMStatus::ExitedErr(err.into()),
[INFO] [stderr] | ^^^^^^^^^^ help: consider removing `.into()`: `err`
[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:253:20
[INFO] [stderr] |
[INFO] [stderr] 253 | if self.machines.len() == 0 {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.machines.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] warning: method is never used: `full`
[INFO] [stderr] --> src/commit/account.rs:44:5
[INFO] [stderr] |
[INFO] [stderr] 44 | fn full(address: Address) -> Self {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(dead_code)] on by default
[INFO] [stderr]
[INFO] [stderr] warning: item `memory::SeqMemory
` has a public `len` method but no corresponding `is_empty` method
[INFO] [stderr] --> src/memory.rs:52:1
[INFO] [stderr] |
[INFO] [stderr] 52 | / impl SeqMemory {
[INFO] [stderr] 53 | | pub fn len(&self) -> usize {
[INFO] [stderr] 54 | | self.memory.len()
[INFO] [stderr] 55 | | }
[INFO] [stderr] 56 | | }
[INFO] [stderr] | |_^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty
[INFO] [stderr]
[INFO] [stderr] warning: the loop variable `i` is used to index `a`
[INFO] [stderr] --> src/memory.rs:110:18
[INFO] [stderr] |
[INFO] [stderr] 110 | for i in 0..32 {
[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] 110 | for (i, - ) in a.iter_mut().enumerate() {
[INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: item `stack::Stack` has a public `len` method but no corresponding `is_empty` method
[INFO] [stderr] --> src/stack.rs:22:1
[INFO] [stderr] |
[INFO] [stderr] 22 | / impl Stack {
[INFO] [stderr] 23 | | /// Check a pop-push cycle. If the check succeeded, `push`, `pop`,
[INFO] [stderr] 24 | | /// `set`, `peek` within the limit should not fail.
[INFO] [stderr] 25 | | pub fn check_pop_push(&self, pop: usize, push: usize) -> Result<(), OnChainError> {
[INFO] [stderr] ... |
[INFO] [stderr] 81 | | }
[INFO] [stderr] 82 | | }
[INFO] [stderr] | |_^
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty
[INFO] [stderr]
[INFO] [stderr] warning: item `pc::Valids` has a public `len` method but no corresponding `is_empty` method
[INFO] [stderr] --> src/pc.rs:39:1
[INFO] [stderr] |
[INFO] [stderr] 39 | / impl Valids {
[INFO] [stderr] 40 | | pub fn new(code: &[u8]) -> Self {
[INFO] [stderr] 41 | | let mut valids: Vec = Vec::with_capacity(code.len());
[INFO] [stderr] 42 | | valids.resize(code.len(), false);
[INFO] [stderr] ... |
[INFO] [stderr] 78 | | }
[INFO] [stderr] 79 | | }
[INFO] [stderr] | |_^
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:50:21
[INFO] [stderr] |
[INFO] [stderr] 50 | i = i + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:56:21
[INFO] [stderr] |
[INFO] [stderr] 56 | i = i + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:128:21
[INFO] [stderr] |
[INFO] [stderr] 128 | i = i + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:131:13
[INFO] [stderr] |
[INFO] [stderr] 131 | o = o + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `o += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:314:21
[INFO] [stderr] |
[INFO] [stderr] 314 | i = i + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:317:13
[INFO] [stderr] |
[INFO] [stderr] 317 | o = o + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `o += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/pc.rs:439:17
[INFO] [stderr] |
[INFO] [stderr] 439 | *self.position = *self.position + 1;
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `*self.position += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:50:5
[INFO] [stderr] |
[INFO] [stderr] 50 | Gas::from(P::gas_call()) + xfer_cost(machine, instruction) + new_cost(machine, instruction)
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_call()`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:77:5
[INFO] [stderr] |
[INFO] [stderr] 77 | Gas::from(P::gas_suicide()) + if !machine.account_state.exists(address).unwrap() {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_suicide()`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:78:9
[INFO] [stderr] |
[INFO] [stderr] 78 | Gas::from(P::gas_suicide_new_account())
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_suicide_new_account()`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:105:5
[INFO] [stderr] |
[INFO] [stderr] 105 | (Gas::from(G_MEMORY) * a + a * a / Gas::from(512u64)).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(Gas::from(G_MEMORY) * a + a * a / Gas::from(512u64))`
[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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead
[INFO] [stderr] --> src/eval/cost.rs:111:9
[INFO] [stderr] |
[INFO] [stderr] 111 | let ref stack = state.stack;
[INFO] [stderr] | ----^^^^^^^^^--------------- help: try: `let stack = &state.stack;`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg
[INFO] [stderr]
[INFO] [stderr] warning: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:171:13
[INFO] [stderr] |
[INFO] [stderr] 171 | (Gas::from(G_SHA3) + Gas::from(G_SHA3WORD) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) }).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(Gas::from(G_SHA3) + Gas::from(G_SHA3WORD) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) })`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:176:13
[INFO] [stderr] |
[INFO] [stderr] 176 | (Gas::from(G_LOG) + Gas::from(G_LOGDATA) * Gas::from(len) + Gas::from(G_LOGTOPIC) * Gas::from(v)).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(Gas::from(G_LOG) + Gas::from(G_LOGDATA) * Gas::from(len) + Gas::from(G_LOGTOPIC) * Gas::from(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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:183:13
[INFO] [stderr] |
[INFO] [stderr] 183 | (Gas::from(P::gas_extcode()) + Gas::from(G_COPY) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) }).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(Gas::from(P::gas_extcode()) + Gas::from(G_COPY) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) })`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:183:14
[INFO] [stderr] |
[INFO] [stderr] 183 | (Gas::from(P::gas_extcode()) + Gas::from(G_COPY) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) }).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_extcode()`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:190:13
[INFO] [stderr] |
[INFO] [stderr] 190 | (Gas::from(G_VERYLOW) + Gas::from(G_COPY) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) }).into()
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(Gas::from(G_VERYLOW) + Gas::from(G_COPY) * if wordr == Gas::zero() { wordd } else { wordd + Gas::from(1u64) })`
[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: identical conversion
[INFO] [stderr] --> src/eval/cost.rs:197:36
[INFO] [stderr] |
[INFO] [stderr] 197 | Gas::from(G_EXP) + Gas::from(P::gas_expbyte()) * (Gas::from(1u64) + Gas::from(state.stack.peek(1).unwrap().log2floor()) / Gas::from(8u64))
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_expbyte()`
[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: The function/method `copy_from_memory` doesn't need a mutable reference
[INFO] [stderr] --> src/eval/run/mod.rs:174:71
[INFO] [stderr] |
[INFO] [stderr] 174 | state.out = Rc::new(copy_from_memory(&mut state.memory, start, len));
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed
[INFO] [stderr]
[INFO] [stderr] warning: manual implementation of an assign operation
[INFO] [stderr] --> src/eval/util.rs:60:9
[INFO] [stderr] |
[INFO] [stderr] 60 | j = j + 1;
[INFO] [stderr] | ^^^^^^^^^ help: replace it with: `j += 1`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
[INFO] [stderr]
[INFO] [stderr] warning: large size difference between variants
[INFO] [stderr] --> src/eval/mod.rs:124:5
[INFO] [stderr] |
[INFO] [stderr] 124 | InvokeCall(Context, (U256, U256)),
[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/eval/mod.rs:124:5
[INFO] [stderr] |
[INFO] [stderr] 124 | InvokeCall(Context, (U256, U256)),
[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: large size difference between variants
[INFO] [stderr] --> src/eval/mod.rs:139:5
[INFO] [stderr] |
[INFO] [stderr] 139 | InvokeCall(Context, (U256, U256)),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum
[INFO] [stderr] --> src/eval/mod.rs:139:5
[INFO] [stderr] |
[INFO] [stderr] 139 | InvokeCall(Context, (U256, U256)),
[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: you don't need to add `&` to both the expression and the patterns
[INFO] [stderr] --> src/eval/mod.rs:276:9
[INFO] [stderr] |
[INFO] [stderr] 276 | / match &self.status {
[INFO] [stderr] 277 | | &MachineStatus::Running => (),
[INFO] [stderr] 278 | | _ => panic!(),
[INFO] [stderr] 279 | | }
[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: try
[INFO] [stderr] |
[INFO] [stderr] 276 | match self.status {
[INFO] [stderr] 277 | MachineStatus::Running => (),
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: item `commit::account::Storage` has a public `len` method but no corresponding `is_empty` method
[INFO] [stderr] --> src/commit/account.rs:33:1
[INFO] [stderr] |
[INFO] [stderr] 33 | / impl Storage {
[INFO] [stderr] 34 | | /// Create a new storage.
[INFO] [stderr] 35 | | fn new(address: Address, partial: bool) -> Self {
[INFO] [stderr] 36 | | Storage {
[INFO] [stderr] ... |
[INFO] [stderr] 86 | | }
[INFO] [stderr] 87 | | }
[INFO] [stderr] | |_^
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:130:9
[INFO] [stderr] |
[INFO] [stderr] 130 | / match self {
[INFO] [stderr] 131 | | &AccountCommitment::Full {
[INFO] [stderr] 132 | | address,
[INFO] [stderr] 133 | | ..
[INFO] [stderr] ... |
[INFO] [stderr] 143 | | &AccountCommitment::Nonexist(address) => address,
[INFO] [stderr] 144 | | }
[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] 130 | match *self {
[INFO] [stderr] 131 | AccountCommitment::Full {
[INFO] [stderr] 132 | address,
[INFO] [stderr] 133 | ..
[INFO] [stderr] 134 | } => address,
[INFO] [stderr] 135 | AccountCommitment::Code {
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:187:9
[INFO] [stderr] |
[INFO] [stderr] 187 | / match self {
[INFO] [stderr] 188 | | &AccountChange::Full {
[INFO] [stderr] 189 | | address,
[INFO] [stderr] 190 | | ..
[INFO] [stderr] ... |
[INFO] [stderr] 198 | | &AccountChange::Nonexist(address) => address,
[INFO] [stderr] 199 | | }
[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] 187 | match *self {
[INFO] [stderr] 188 | AccountChange::Full {
[INFO] [stderr] 189 | address,
[INFO] [stderr] 190 | ..
[INFO] [stderr] 191 | } => address,
[INFO] [stderr] 192 | AccountChange::IncreaseBalance(address, _) => address,
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: you seem to want to iterate on a map's keys
[INFO] [stderr] --> src/commit/account.rs:241:29
[INFO] [stderr] |
[INFO] [stderr] 241 | for (address, _) in &self.codes {
[INFO] [stderr] | ^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map
[INFO] [stderr] help: use the corresponding method
[INFO] [stderr] |
[INFO] [stderr] 241 | for address in self.codes.keys() {
[INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:422:17
[INFO] [stderr] |
[INFO] [stderr] 422 | / match val {
[INFO] [stderr] 423 | | &mut AccountChange::Nonexist(_) => (),
[INFO] [stderr] 424 | | // The above matches all cases in enum. FIXME when
[INFO] [stderr] 425 | | // there're more AccountChange variants added.
[INFO] [stderr] 426 | | _ => unreachable!(),
[INFO] [stderr] 427 | | }
[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] 422 | match *val {
[INFO] [stderr] 423 | AccountChange::Nonexist(_) => (),
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:446:13
[INFO] [stderr] |
[INFO] [stderr] 446 | / match self.accounts.get(&address).unwrap() {
[INFO] [stderr] 447 | | &AccountChange::Full { ref code, .. } => return Ok(code.clone()),
[INFO] [stderr] 448 | | &AccountChange::Create { ref code, .. } => return Ok(code.clone()),
[INFO] [stderr] 449 | | &AccountChange::Nonexist(_) => return Ok(Rc::new(Vec::new())),
[INFO] [stderr] 450 | | &AccountChange::IncreaseBalance(_, _) => (),
[INFO] [stderr] 451 | | &AccountChange::DecreaseBalance(_, _) => (),
[INFO] [stderr] 452 | | }
[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] 446 | match *self.accounts.get(&address).unwrap() {
[INFO] [stderr] 447 | AccountChange::Full { ref code, .. } => return Ok(code.clone()),
[INFO] [stderr] 448 | AccountChange::Create { ref code, .. } => return Ok(code.clone()),
[INFO] [stderr] 449 | AccountChange::Nonexist(_) => return Ok(Rc::new(Vec::new())),
[INFO] [stderr] 450 | AccountChange::IncreaseBalance(_, _) => (),
[INFO] [stderr] 451 | AccountChange::DecreaseBalance(_, _) => (),
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise
[INFO] [stderr] --> src/commit/account.rs:446:19
[INFO] [stderr] |
[INFO] [stderr] 446 | match self.accounts.get(&address).unwrap() {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.accounts[&address]`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap
[INFO] [stderr]
[INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise
[INFO] [stderr] --> src/commit/account.rs:456:23
[INFO] [stderr] |
[INFO] [stderr] 456 | return Ok(self.codes.get(&address).unwrap().clone());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.codes[&address]`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:466:13
[INFO] [stderr] |
[INFO] [stderr] 466 | / match self.accounts.get(&address).unwrap() {
[INFO] [stderr] 467 | | &AccountChange::Full {
[INFO] [stderr] 468 | | nonce,
[INFO] [stderr] 469 | | ..
[INFO] [stderr] ... |
[INFO] [stderr] 478 | | _ => (),
[INFO] [stderr] 479 | | }
[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] 466 | match *self.accounts.get(&address).unwrap() {
[INFO] [stderr] 467 | AccountChange::Full {
[INFO] [stderr] 468 | nonce,
[INFO] [stderr] 469 | ..
[INFO] [stderr] 470 | } => return Ok(nonce),
[INFO] [stderr] 471 | AccountChange::Create {
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise
[INFO] [stderr] --> src/commit/account.rs:466:19
[INFO] [stderr] |
[INFO] [stderr] 466 | match self.accounts.get(&address).unwrap() {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.accounts[&address]`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:489:13
[INFO] [stderr] |
[INFO] [stderr] 489 | / match self.accounts.get(&address).unwrap() {
[INFO] [stderr] 490 | | &AccountChange::Full {
[INFO] [stderr] 491 | | balance,
[INFO] [stderr] 492 | | ..
[INFO] [stderr] ... |
[INFO] [stderr] 501 | | _ => (),
[INFO] [stderr] 502 | | }
[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] 489 | match *self.accounts.get(&address).unwrap() {
[INFO] [stderr] 490 | AccountChange::Full {
[INFO] [stderr] 491 | balance,
[INFO] [stderr] 492 | ..
[INFO] [stderr] 493 | } => return Ok(balance),
[INFO] [stderr] 494 | AccountChange::Create {
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise
[INFO] [stderr] --> src/commit/account.rs:489:19
[INFO] [stderr] |
[INFO] [stderr] 489 | match self.accounts.get(&address).unwrap() {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.accounts[&address]`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:511:13
[INFO] [stderr] |
[INFO] [stderr] 511 | / match self.accounts.get(&address).unwrap() {
[INFO] [stderr] 512 | | &AccountChange::Full {
[INFO] [stderr] 513 | | ref changing_storage,
[INFO] [stderr] 514 | | ..
[INFO] [stderr] ... |
[INFO] [stderr] 521 | | _ => (),
[INFO] [stderr] 522 | | }
[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] 511 | match *self.accounts.get(&address).unwrap() {
[INFO] [stderr] 512 | AccountChange::Full {
[INFO] [stderr] 513 | ref changing_storage,
[INFO] [stderr] 514 | ..
[INFO] [stderr] 515 | } => return changing_storage.read(index),
[INFO] [stderr] 516 | AccountChange::Create {
[INFO] [stderr] ...
[INFO] [stderr]
[INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise
[INFO] [stderr] --> src/commit/account.rs:511:19
[INFO] [stderr] |
[INFO] [stderr] 511 | match self.accounts.get(&address).unwrap() {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.accounts[&address]`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:543:21
[INFO] [stderr] |
[INFO] [stderr] 543 | / match val {
[INFO] [stderr] 544 | | &mut AccountChange::Nonexist(_) => { is_nonexist = true; }
[INFO] [stderr] 545 | | _ => { is_nonexist = false; }
[INFO] [stderr] 546 | | }
[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] 543 | match *val {
[INFO] [stderr] 544 | AccountChange::Nonexist(_) => { is_nonexist = true; }
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:612:9
[INFO] [stderr] |
[INFO] [stderr] 612 | / match self.accounts.get_mut(&address).unwrap() {
[INFO] [stderr] 613 | | &mut AccountChange::Create { ref mut code, .. } => {
[INFO] [stderr] 614 | | *code = new_code;
[INFO] [stderr] 615 | | },
[INFO] [stderr] 616 | | _ => panic!(),
[INFO] [stderr] 617 | | }
[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] 612 | match *self.accounts.get_mut(&address).unwrap() {
[INFO] [stderr] 613 | AccountChange::Create { ref mut code, .. } => {
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: you don't need to add `&` to all patterns
[INFO] [stderr] --> src/commit/account.rs:773:17
[INFO] [stderr] |
[INFO] [stderr] 773 | / match val {
[INFO] [stderr] 774 | | &mut AccountChange::Nonexist(_) => { is_nonexist = true; }
[INFO] [stderr] 775 | | _ => { is_nonexist = false; }
[INFO] [stderr] 776 | | }
[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] 773 | match *val {
[INFO] [stderr] 774 | AccountChange::Nonexist(_) => { is_nonexist = true; }
[INFO] [stderr] |
[INFO] [stderr]
[INFO] [stderr] warning: it looks like you're manually copying between slices
[INFO] [stderr] --> src/patch/precompiled.rs:111:18
[INFO] [stderr] |
[INFO] [stderr] 111 | for i in 0..min(datao.len(), 128) {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `data[..min(datao.len(), 128)].clone_from_slice(&datao[..min(datao.len(), 128)])`
[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: the loop variable `i` is only used to index `ret`.
[INFO] [stderr] --> src/patch/precompiled.rs:116:26
[INFO] [stderr] |
[INFO] [stderr] 116 | for i in 0..12 {
[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] 116 | for
- in ret.iter_mut().take(12) {
[INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: it looks like you're manually copying between slices
[INFO] [stderr] --> src/patch/precompiled.rs:168:14
[INFO] [stderr] |
[INFO] [stderr] 168 | for i in 0..32 {
[INFO] [stderr] | ^^^^^ help: try replacing the loop by: `message_raw[..32].clone_from_slice(&data[..32])`
[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] warning: it looks like you're manually copying between slices
[INFO] [stderr] --> src/patch/precompiled.rs:178:14
[INFO] [stderr] |
[INFO] [stderr] 178 | for i in 0..64 {
[INFO] [stderr] | ^^^^^ help: try replacing the loop by: `sig_raw[..64].clone_from_slice(&data[64..(64 + 64)])`
[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] warning: using `clone` on a `Copy` type
[INFO] [stderr] --> src/transaction.rs:95:25
[INFO] [stderr] |
[INFO] [stderr] 95 | action: self.action.clone(),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.action`
[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: using `clone` on a `Copy` type
[INFO] [stderr] --> src/transaction.rs:150:21
[INFO] [stderr] |
[INFO] [stderr] 150 | action: transaction.action.clone(),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `transaction.action`
[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: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:182:41
[INFO] [stderr] |
[INFO] [stderr] 182 | self.action.address(self.caller.unwrap_or(system_address!()), self.nonce)
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| system_address!())`
[INFO] [stderr] |
[INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: identical conversion
[INFO] [stderr] --> src/transaction.rs:190:25
[INFO] [stderr] |
[INFO] [stderr] 190 | gas = gas + Gas::from(P::gas_transaction_create());
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Gas::from()`: `P::gas_transaction_create()`
[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: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:223:41
[INFO] [stderr] |
[INFO] [stderr] 223 | caller: self.caller.unwrap_or(system_address!()),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| system_address!())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:229:36
[INFO] [stderr] |
[INFO] [stderr] 229 | origin: origin.unwrap_or(self.caller.unwrap_or(system_address!())),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.caller.unwrap_or(system_address!()))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:229:58
[INFO] [stderr] |
[INFO] [stderr] 229 | origin: origin.unwrap_or(self.caller.unwrap_or(system_address!())),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| system_address!())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:243:41
[INFO] [stderr] |
[INFO] [stderr] 243 | caller: self.caller.unwrap_or(system_address!()),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| system_address!())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:249:36
[INFO] [stderr] |
[INFO] [stderr] 249 | origin: origin.unwrap_or(self.caller.unwrap_or(system_address!())),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.caller.unwrap_or(system_address!()))`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[INFO] [stderr]
[INFO] [stderr] warning: use of `unwrap_or` followed by a function call
[INFO] [stderr] --> src/transaction.rs:249:58
[INFO] [stderr] |
[INFO] [stderr] 249 | origin: origin.unwrap_or(self.caller.unwrap_or(system_address!())),
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| system_address!())`
[INFO] [stderr] |
[INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
[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/lib.rs:216:9
[INFO] [stderr] |
[INFO] [stderr] 216 | / match self.machines.last().unwrap().status().clone() {
[INFO] [stderr] 217 | | MachineStatus::ExitedNotSupported(err) => return VMStatus::ExitedNotSupported(err),
[INFO] [stderr] 218 | | _ => (),
[INFO] [stderr] 219 | | }
[INFO] [stderr] | |_________^ help: try this: `if let MachineStatus::ExitedNotSupported(err) = self.machines.last().unwrap().status().clone() { return VMStatus::ExitedNotSupported(err) }`
[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: identical conversion
[INFO] [stderr] --> src/lib.rs:224:66
[INFO] [stderr] |
[INFO] [stderr] 224 | MachineStatus::ExitedErr(err) => VMStatus::ExitedErr(err.into()),
[INFO] [stderr] | ^^^^^^^^^^ help: consider removing `.into()`: `err`
[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:253:20
[INFO] [stderr] |
[INFO] [stderr] 253 | if self.machines.len() == 0 {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.machines.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] Finished dev [unoptimized + debuginfo] target(s) in 28.10s
[INFO] running `"docker" "inspect" "96b639091ae89077d0b01713061627935a50bf82fa9b65c39efbef654d445469"`
[INFO] running `"docker" "rm" "-f" "96b639091ae89077d0b01713061627935a50bf82fa9b65c39efbef654d445469"`
[INFO] [stdout] 96b639091ae89077d0b01713061627935a50bf82fa9b65c39efbef654d445469