[INFO] crate esvm 0.0.1 is already in cache [INFO] extracting crate esvm 0.0.1 into work/ex/clippy-test-run/sources/stable/reg/esvm/0.0.1 [INFO] extracting crate esvm 0.0.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/esvm/0.0.1 [INFO] validating manifest of esvm-0.0.1 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 esvm-0.0.1 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 esvm-0.0.1 [INFO] finished frobbing esvm-0.0.1 [INFO] frobbed toml for esvm-0.0.1 written to work/ex/clippy-test-run/sources/stable/reg/esvm/0.0.1/Cargo.toml [INFO] started frobbing esvm-0.0.1 [INFO] finished frobbing esvm-0.0.1 [INFO] frobbed toml for esvm-0.0.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/esvm/0.0.1/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 esvm-0.0.1 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/esvm/0.0.1:/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] dbb9a394820cc6b6acf871947ca541f9ab410352ff0366dd4caa6683e23a315f [INFO] running `"docker" "start" "-a" "dbb9a394820cc6b6acf871947ca541f9ab410352ff0366dd4caa6683e23a315f"` [INFO] [stderr] Compiling heapsize v0.3.9 [INFO] [stderr] Compiling secp256k1 v0.6.3 [INFO] [stderr] Checking generic-array v0.7.3 [INFO] [stderr] Checking serde v0.6.15 [INFO] [stderr] Checking digest v0.5.2 [INFO] [stderr] Checking digest-buffer v0.3.1 [INFO] [stderr] Checking elastic-array v0.7.0 [INFO] [stderr] Checking ripemd160 v0.5.2 [INFO] [stderr] Checking sha2 v0.5.3 [INFO] [stderr] Checking esvm-rlp v0.0.1 [INFO] [stderr] Checking serde_json v0.6.1 [INFO] [stderr] Checking esvm-bigint v0.0.1 [INFO] [stderr] Checking esvm v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/vm/pc.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/vm/pc.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | valids: valids, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `valids` [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/vm/storage.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | 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/vm/storage.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | 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/vm/eval/run/system.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/vm/eval/run/system.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | 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/vm/eval/run/system.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | 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/vm/eval/run/system.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | init: init, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `init` [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/vm/eval/run/system.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | 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/vm/eval/run/system.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | 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/vm/pc.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/vm/pc.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | valids: valids, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `valids` [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/vm/storage.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | 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/vm/storage.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | 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/vm/eval/run/system.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/vm/eval/run/system.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | 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/vm/eval/run/system.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | 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/vm/eval/run/system.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | init: init, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `init` [INFO] [stderr] | [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/vm/eval/mod.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | context: context, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [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] = 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/vm/eval/run/system.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | 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/vm/eval/run/system.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | 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/vm/eval/mod.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | context: context, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `context` [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/vm/transaction.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | 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/vm/transaction.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | 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/vm/transaction.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | patch: patch, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `patch` [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/vm/transaction.rs:161:13 [INFO] [stderr] | [INFO] [stderr] 161 | 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/vm/transaction.rs:162:13 [INFO] [stderr] | [INFO] [stderr] 162 | 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/vm/transaction.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | patch: patch, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `patch` [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/vm/transaction.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | 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/vm/transaction.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | 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/vm/transaction.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | patch: patch, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `patch` [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/vm/transaction.rs:161:13 [INFO] [stderr] | [INFO] [stderr] 161 | 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/vm/transaction.rs:162:13 [INFO] [stderr] | [INFO] [stderr] 162 | 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/vm/transaction.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | patch: patch, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `patch` [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/vm/pc.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | 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/vm/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/vm/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/vm/pc.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | 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/vm/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/vm/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/vm/eval/precompiled.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/vm/eval/precompiled.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/vm/eval/precompiled.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/vm/eval/precompiled.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/vm/eval/precompiled.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | 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/vm/commit/account.rs:136:44 [INFO] [stderr] | [INFO] [stderr] 136 | Some(&Account::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/vm/commit/account.rs:137:46 [INFO] [stderr] | [INFO] [stderr] 137 | Some(&Account::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/vm/commit/account.rs:139:18 [INFO] [stderr] | [INFO] [stderr] 139 | _ => 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/vm/commit/account.rs:151:44 [INFO] [stderr] | [INFO] [stderr] 151 | Some(&Account::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/vm/commit/account.rs:152:46 [INFO] [stderr] | [INFO] [stderr] 152 | Some(&Account::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/vm/commit/account.rs:154:18 [INFO] [stderr] | [INFO] [stderr] 154 | _ => 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/vm/commit/account.rs:263:9 [INFO] [stderr] | [INFO] [stderr] 263 | 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/vm/commit/account.rs:284:9 [INFO] [stderr] | [INFO] [stderr] 284 | 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/vm/commit/account.rs:305:9 [INFO] [stderr] | [INFO] [stderr] 305 | 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/vm/commit/account.rs:326:9 [INFO] [stderr] | [INFO] [stderr] 326 | 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/vm/commit/account.rs:347:9 [INFO] [stderr] | [INFO] [stderr] 347 | 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/vm/transaction.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | 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/vm/eval/precompiled.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/vm/eval/precompiled.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/vm/eval/precompiled.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/vm/eval/precompiled.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/vm/eval/precompiled.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | 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/vm/commit/account.rs:136:44 [INFO] [stderr] | [INFO] [stderr] 136 | Some(&Account::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/vm/commit/account.rs:137:46 [INFO] [stderr] | [INFO] [stderr] 137 | Some(&Account::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/vm/commit/account.rs:139:18 [INFO] [stderr] | [INFO] [stderr] 139 | _ => 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/vm/commit/account.rs:151:44 [INFO] [stderr] | [INFO] [stderr] 151 | Some(&Account::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/vm/commit/account.rs:152:46 [INFO] [stderr] | [INFO] [stderr] 152 | Some(&Account::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/vm/commit/account.rs:154:18 [INFO] [stderr] | [INFO] [stderr] 154 | _ => 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/vm/commit/account.rs:263:9 [INFO] [stderr] | [INFO] [stderr] 263 | 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/vm/commit/account.rs:284:9 [INFO] [stderr] | [INFO] [stderr] 284 | 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/vm/commit/account.rs:305:9 [INFO] [stderr] | [INFO] [stderr] 305 | 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/vm/commit/account.rs:326:9 [INFO] [stderr] | [INFO] [stderr] 326 | 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/vm/commit/account.rs:347:9 [INFO] [stderr] | [INFO] [stderr] 347 | 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/vm/transaction.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | 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: value assigned to `cgas` is never read [INFO] [stderr] --> src/vm/transaction.rs:229:17 [INFO] [stderr] | [INFO] [stderr] 229 | let mut cgas: Option = None; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `ccontext` is never read [INFO] [stderr] --> src/vm/transaction.rs:230:17 [INFO] [stderr] | [INFO] [stderr] 230 | let mut ccontext: Option = None; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `cblock` is never read [INFO] [stderr] --> src/vm/transaction.rs:231:17 [INFO] [stderr] | [INFO] [stderr] 231 | let mut cblock: Option = None; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `cpatch` is never read [INFO] [stderr] --> src/vm/transaction.rs:232:17 [INFO] [stderr] | [INFO] [stderr] 232 | let mut cpatch: Option<&'static Patch> = None; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `caccount_state` is never read [INFO] [stderr] --> src/vm/transaction.rs:233:17 [INFO] [stderr] | [INFO] [stderr] 233 | let mut caccount_state: Option = None; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `cblockhash_state` is never read [INFO] [stderr] --> src/vm/transaction.rs:234:17 [INFO] [stderr] | [INFO] [stderr] 234 | let mut cblockhash_state: Option = None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `ccode_deposit` is never read [INFO] [stderr] --> src/vm/transaction.rs:235:17 [INFO] [stderr] | [INFO] [stderr] 235 | let mut ccode_deposit: Option = None; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `cgas` is never read [INFO] [stderr] --> src/vm/transaction.rs:229:17 [INFO] [stderr] | [INFO] [stderr] 229 | let mut cgas: Option = None; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `ccontext` is never read [INFO] [stderr] --> src/vm/transaction.rs:230:17 [INFO] [stderr] | [INFO] [stderr] 230 | let mut ccontext: Option = None; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `cblock` is never read [INFO] [stderr] --> src/vm/transaction.rs:231:17 [INFO] [stderr] | [INFO] [stderr] 231 | let mut cblock: Option = None; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `cpatch` is never read [INFO] [stderr] --> src/vm/transaction.rs:232:17 [INFO] [stderr] | [INFO] [stderr] 232 | let mut cpatch: Option<&'static Patch> = None; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `caccount_state` is never read [INFO] [stderr] --> src/vm/transaction.rs:233:17 [INFO] [stderr] | [INFO] [stderr] 233 | let mut caccount_state: Option = None; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `cblockhash_state` is never read [INFO] [stderr] --> src/vm/transaction.rs:234:17 [INFO] [stderr] | [INFO] [stderr] 234 | let mut cblockhash_state: Option = None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `ccode_deposit` is never read [INFO] [stderr] --> src/vm/transaction.rs:235:17 [INFO] [stderr] | [INFO] [stderr] 235 | let mut ccode_deposit: Option = None; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `l64` [INFO] [stderr] --> src/vm/eval/utils.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn l64(gas: Gas) -> Gas { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/utils/address.rs:74:26 [INFO] [stderr] | [INFO] [stderr] 74 | for i in 0..20 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `a[..20].clone_from_slice(&v[..20])` [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: redundant closure found [INFO] [stderr] --> src/utils/gas.rs:27:31 [INFO] [stderr] | [INFO] [stderr] 27 | U256::from_str(s).map(|s| Gas::from(s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `Gas::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `a` [INFO] [stderr] --> src/vm/memory.rs:56:18 [INFO] [stderr] | [INFO] [stderr] 56 | 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] 56 | for (i, ) in a.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `a` [INFO] [stderr] --> src/vm/memory.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | for i in 0..32 { [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] 80 | for (i, ) in a.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: item `vm::stack::Stack` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/vm/stack.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | / impl Stack { [INFO] [stderr] 20 | | /// Check a pop-push cycle. If the check succeeded, `push`, `pop`, [INFO] [stderr] 21 | | /// `set`, `peek` within the limit should not fail. [INFO] [stderr] 22 | | pub fn check_pop_push(&self, pop: usize, push: usize) -> Result<(), StackError> { [INFO] [stderr] ... | [INFO] [stderr] 78 | | } [INFO] [stderr] 79 | | } [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: manual implementation of an assign operation [INFO] [stderr] --> src/vm/pc.rs:57:21 [INFO] [stderr] | [INFO] [stderr] 57 | 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/vm/pc.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | 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/vm/pc.rs:237:17 [INFO] [stderr] | [INFO] [stderr] 237 | 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: function is never used: `l64` [INFO] [stderr] --> src/vm/eval/utils.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn l64(gas: Gas) -> Gas { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/vm/eval/cost.rs:68:140 [INFO] [stderr] | [INFO] [stderr] 68 | if machine.account_state.balance(address).unwrap() == U256::zero() && machine.account_state.nonce(address).unwrap() == M256::zero() && machine.account_state.code(address).unwrap().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `machine.account_state.code(address).unwrap().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: identical conversion [INFO] [stderr] --> src/vm/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] = 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: it looks like you're manually copying between slices [INFO] [stderr] --> src/utils/address.rs:74:26 [INFO] [stderr] | [INFO] [stderr] 74 | for i in 0..20 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `a[..20].clone_from_slice(&v[..20])` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/vm/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/vm/eval/cost.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | (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/vm/eval/cost.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | (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/vm/eval/cost.rs:182:13 [INFO] [stderr] | [INFO] [stderr] 182 | (Gas::from(state.patch.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(state.patch.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/vm/eval/cost.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | (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: redundant closure found [INFO] [stderr] --> src/utils/gas.rs:27:31 [INFO] [stderr] | [INFO] [stderr] 27 | U256::from_str(s).map(|s| Gas::from(s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `Gas::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `a` [INFO] [stderr] --> src/vm/memory.rs:56:18 [INFO] [stderr] | [INFO] [stderr] 56 | 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] 56 | for (i, ) in a.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `a` [INFO] [stderr] --> src/vm/memory.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | for i in 0..32 { [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] 80 | for (i, ) in a.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: The function/method `copy_from_memory` doesn't need a mutable reference [INFO] [stderr] --> src/vm/eval/run/mod.rs:174:63 [INFO] [stderr] | [INFO] [stderr] 174 | state.out = 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: item `vm::stack::Stack` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/vm/stack.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | / impl Stack { [INFO] [stderr] 20 | | /// Check a pop-push cycle. If the check succeeded, `push`, `pop`, [INFO] [stderr] 21 | | /// `set`, `peek` within the limit should not fail. [INFO] [stderr] 22 | | pub fn check_pop_push(&self, pop: usize, push: usize) -> Result<(), StackError> { [INFO] [stderr] ... | [INFO] [stderr] 78 | | } [INFO] [stderr] 79 | | } [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: manual implementation of an assign operation [INFO] [stderr] --> src/vm/pc.rs:57:21 [INFO] [stderr] | [INFO] [stderr] 57 | 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/vm/pc.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | 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/vm/pc.rs:237:17 [INFO] [stderr] | [INFO] [stderr] 237 | 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: length comparison to zero [INFO] [stderr] --> src/vm/eval/cost.rs:68:140 [INFO] [stderr] | [INFO] [stderr] 68 | if machine.account_state.balance(address).unwrap() == U256::zero() && machine.account_state.nonce(address).unwrap() == M256::zero() && machine.account_state.code(address).unwrap().len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `machine.account_state.code(address).unwrap().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: identical conversion [INFO] [stderr] --> src/vm/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] = 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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/vm/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: the loop variable `i` is used to index `data` [INFO] [stderr] --> src/vm/eval/precompiled.rs:101:22 [INFO] [stderr] | [INFO] [stderr] 101 | for i in 0..self.state.context.data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 101 | for (i, ) in data.iter_mut().enumerate().take(self.state.context.data.len()) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/vm/eval/precompiled.rs:101:22 [INFO] [stderr] | [INFO] [stderr] 101 | for i in 0..self.state.context.data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `data[..self.state.context.data.len()].clone_from_slice(&self.state.context.data[..])` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/vm/eval/precompiled.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | / match kececrec(&data) { [INFO] [stderr] 105 | | Ok(mut ret) => { [INFO] [stderr] 106 | | for i in 0..12 { [INFO] [stderr] 107 | | ret[i] = 0u8; [INFO] [stderr] ... | [INFO] [stderr] 111 | | Err(_) => (), [INFO] [stderr] 112 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 104 | if let Ok(mut ret) = kececrec(&data) { [INFO] [stderr] 105 | for i in 0..12 { [INFO] [stderr] 106 | ret[i] = 0u8; [INFO] [stderr] 107 | } [INFO] [stderr] 108 | self.state.out = ret.as_ref().into(); [INFO] [stderr] 109 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `ret`. [INFO] [stderr] --> src/vm/eval/precompiled.rs:106:30 [INFO] [stderr] | [INFO] [stderr] 106 | 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] 106 | for in ret.iter_mut().take(12) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/vm/eval/cost.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | (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/vm/eval/cost.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | (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: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/vm/eval/precompiled.rs:121:38 [INFO] [stderr] | [INFO] [stderr] 121 | let recid = RecoveryId::from_i32(data[63] as i32)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i32::from(data[63])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/vm/eval/cost.rs:182:13 [INFO] [stderr] | [INFO] [stderr] 182 | (Gas::from(state.patch.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(state.patch.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/vm/eval/cost.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | (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] warning: large size difference between variants [INFO] [stderr] --> src/vm/eval/mod.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | InvokeCall(Context, (M256, M256)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/vm/eval/mod.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | InvokeCall(Context, (M256, M256)), [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/vm/eval/mod.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | InvokeCall(Context, (M256, M256)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/vm/eval/mod.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | InvokeCall(Context, (M256, M256)), [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] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/vm/eval/mod.rs:142:24 [INFO] [stderr] | [INFO] [stderr] 142 | patch: self.state.patch.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 142 | patch: &(*self.state.patch).clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 142 | patch: &vm::patch::Patch::clone(self.state.patch), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/vm/eval/mod.rs:323:9 [INFO] [stderr] | [INFO] [stderr] 323 | / match &self.status { [INFO] [stderr] 324 | | &MachineStatus::Running => (), [INFO] [stderr] 325 | | _ => panic!(), [INFO] [stderr] 326 | | } [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] 323 | match self.status { [INFO] [stderr] 324 | MachineStatus::Running => (), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/commit/account.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | / match self { [INFO] [stderr] 40 | | &AccountCommitment::Full { [INFO] [stderr] 41 | | address, [INFO] [stderr] 42 | | .. [INFO] [stderr] ... | [INFO] [stderr] 51 | | } => address, [INFO] [stderr] 52 | | } [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] 39 | match *self { [INFO] [stderr] 40 | AccountCommitment::Full { [INFO] [stderr] 41 | address, [INFO] [stderr] 42 | .. [INFO] [stderr] 43 | } => address, [INFO] [stderr] 44 | AccountCommitment::Code { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/commit/account.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | / match self { [INFO] [stderr] 88 | | &Account::Full { [INFO] [stderr] 89 | | address, [INFO] [stderr] 90 | | .. [INFO] [stderr] ... | [INFO] [stderr] 98 | | } => address, [INFO] [stderr] 99 | | } [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] 87 | match *self { [INFO] [stderr] 88 | Account::Full { [INFO] [stderr] 89 | address, [INFO] [stderr] 90 | .. [INFO] [stderr] 91 | } => address, [INFO] [stderr] 92 | Account::IncreaseBalance(address, _) => address, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: The function/method `copy_from_memory` doesn't need a mutable reference [INFO] [stderr] --> src/vm/eval/run/mod.rs:174:63 [INFO] [stderr] | [INFO] [stderr] 174 | state.out = 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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/vm/commit/account.rs:244:23 [INFO] [stderr] | [INFO] [stderr] 244 | return Ok(self.codes.get(&address).unwrap().as_slice()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.codes[&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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/commit/account.rs:248:13 [INFO] [stderr] | [INFO] [stderr] 248 | / match self.accounts.get(&address).unwrap() { [INFO] [stderr] 249 | | &Account::Full { [INFO] [stderr] 250 | | ref code, [INFO] [stderr] 251 | | .. [INFO] [stderr] ... | [INFO] [stderr] 259 | | &Account::DecreaseBalance(address, _) => return Err(RequireError::Account(address)), [INFO] [stderr] 260 | | } [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] 248 | match *self.accounts.get(&address).unwrap() { [INFO] [stderr] 249 | Account::Full { [INFO] [stderr] 250 | ref code, [INFO] [stderr] 251 | .. [INFO] [stderr] 252 | } => return Ok(code.as_slice()), [INFO] [stderr] 253 | Account::Create { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/vm/commit/account.rs:248:19 [INFO] [stderr] | [INFO] [stderr] 248 | 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/vm/commit/account.rs:270:13 [INFO] [stderr] | [INFO] [stderr] 270 | / match self.accounts.get(&address).unwrap() { [INFO] [stderr] 271 | | &Account::Full { [INFO] [stderr] 272 | | nonce, [INFO] [stderr] 273 | | .. [INFO] [stderr] ... | [INFO] [stderr] 280 | | _ => (), [INFO] [stderr] 281 | | } [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] 270 | match *self.accounts.get(&address).unwrap() { [INFO] [stderr] 271 | Account::Full { [INFO] [stderr] 272 | nonce, [INFO] [stderr] 273 | .. [INFO] [stderr] 274 | } => return Ok(nonce), [INFO] [stderr] 275 | Account::Create { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/vm/commit/account.rs:270:19 [INFO] [stderr] | [INFO] [stderr] 270 | 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/vm/commit/account.rs:291:13 [INFO] [stderr] | [INFO] [stderr] 291 | / match self.accounts.get(&address).unwrap() { [INFO] [stderr] 292 | | &Account::Full { [INFO] [stderr] 293 | | balance, [INFO] [stderr] 294 | | .. [INFO] [stderr] ... | [INFO] [stderr] 301 | | _ => (), [INFO] [stderr] 302 | | } [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] 291 | match *self.accounts.get(&address).unwrap() { [INFO] [stderr] 292 | Account::Full { [INFO] [stderr] 293 | balance, [INFO] [stderr] 294 | .. [INFO] [stderr] 295 | } => return Ok(balance), [INFO] [stderr] 296 | Account::Create { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/vm/commit/account.rs:291:19 [INFO] [stderr] | [INFO] [stderr] 291 | 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/vm/commit/account.rs:312:13 [INFO] [stderr] | [INFO] [stderr] 312 | / match self.accounts.get(&address).unwrap() { [INFO] [stderr] 313 | | &Account::Full { [INFO] [stderr] 314 | | ref changing_storage, [INFO] [stderr] 315 | | .. [INFO] [stderr] ... | [INFO] [stderr] 322 | | _ => (), [INFO] [stderr] 323 | | } [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] 312 | match *self.accounts.get(&address).unwrap() { [INFO] [stderr] 313 | Account::Full { [INFO] [stderr] 314 | ref changing_storage, [INFO] [stderr] 315 | .. [INFO] [stderr] 316 | } => return Ok(changing_storage), [INFO] [stderr] 317 | Account::Create { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/vm/commit/account.rs:312:19 [INFO] [stderr] | [INFO] [stderr] 312 | 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/vm/commit/account.rs:333:13 [INFO] [stderr] | [INFO] [stderr] 333 | / match self.accounts.get_mut(&address).unwrap() { [INFO] [stderr] 334 | | &mut Account::Full { [INFO] [stderr] 335 | | ref mut changing_storage, [INFO] [stderr] 336 | | .. [INFO] [stderr] ... | [INFO] [stderr] 343 | | _ => (), [INFO] [stderr] 344 | | } [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] 333 | match *self.accounts.get_mut(&address).unwrap() { [INFO] [stderr] 334 | Account::Full { [INFO] [stderr] 335 | ref mut changing_storage, [INFO] [stderr] 336 | .. [INFO] [stderr] 337 | } => return Ok(changing_storage), [INFO] [stderr] 338 | Account::Create { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/commit/account.rs:388:9 [INFO] [stderr] | [INFO] [stderr] 388 | / match self.accounts.get_mut(&address).unwrap() { [INFO] [stderr] 389 | | &mut Account::Create { ref mut code, .. } => { [INFO] [stderr] 390 | | *code = new_code.into(); [INFO] [stderr] 391 | | }, [INFO] [stderr] 392 | | _ => panic!(), [INFO] [stderr] 393 | | } [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] 388 | match *self.accounts.get_mut(&address).unwrap() { [INFO] [stderr] 389 | Account::Create { ref mut code, .. } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/transaction.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | / match self { [INFO] [stderr] 39 | | &Transaction::MessageCall { caller, .. } => caller, [INFO] [stderr] 40 | | &Transaction::ContractCreation { caller, .. } => caller, [INFO] [stderr] 41 | | } [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] 38 | match *self { [INFO] [stderr] 39 | Transaction::MessageCall { caller, .. } => caller, [INFO] [stderr] 40 | Transaction::ContractCreation { caller, .. } => caller, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/transaction.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | / match self { [INFO] [stderr] 47 | | &Transaction::MessageCall { [INFO] [stderr] 48 | | ref data, .. [INFO] [stderr] 49 | | } => { [INFO] [stderr] ... | [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | } [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] 46 | match *self { [INFO] [stderr] 47 | Transaction::MessageCall { [INFO] [stderr] 48 | ref data, .. [INFO] [stderr] 49 | } => { [INFO] [stderr] 50 | for d in data { [INFO] [stderr] 51 | if *d == 0 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/transaction.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | / match self { [INFO] [stderr] 120 | | &Transaction::MessageCall { gas_limit, .. } => gas_limit, [INFO] [stderr] 121 | | &Transaction::ContractCreation { gas_limit, .. } => gas_limit, [INFO] [stderr] 122 | | } [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] 119 | match *self { [INFO] [stderr] 120 | Transaction::MessageCall { gas_limit, .. } => gas_limit, [INFO] [stderr] 121 | Transaction::ContractCreation { gas_limit, .. } => gas_limit, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/vm/transaction.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 134 | / Constructing { [INFO] [stderr] 135 | | transaction: Transaction, [INFO] [stderr] 136 | | block: BlockHeader, [INFO] [stderr] 137 | | patch: &'static Patch, [INFO] [stderr] ... | [INFO] [stderr] 140 | | blockhash_state: BlockhashState, [INFO] [stderr] 141 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/vm/transaction.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 134 | / Constructing { [INFO] [stderr] 135 | | transaction: Transaction, [INFO] [stderr] 136 | | block: BlockHeader, [INFO] [stderr] 137 | | patch: &'static Patch, [INFO] [stderr] ... | [INFO] [stderr] 140 | | blockhash_state: BlockhashState, [INFO] [stderr] 141 | | }, [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 all patterns [INFO] [stderr] --> src/vm/transaction.rs:272:38 [INFO] [stderr] | [INFO] [stderr] 272 | ccode_deposit = Some(match transaction { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 273 | | &Transaction::MessageCall { .. } => false, [INFO] [stderr] 274 | | &Transaction::ContractCreation { .. } => true, [INFO] [stderr] 275 | | }); [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] 272 | ccode_deposit = Some(match *transaction { [INFO] [stderr] 273 | Transaction::MessageCall { .. } => false, [INFO] [stderr] 274 | Transaction::ContractCreation { .. } => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `data` [INFO] [stderr] --> src/vm/eval/precompiled.rs:101:22 [INFO] [stderr] | [INFO] [stderr] 101 | for i in 0..self.state.context.data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 101 | for (i, ) in data.iter_mut().enumerate().take(self.state.context.data.len()) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/vm/eval/precompiled.rs:101:22 [INFO] [stderr] | [INFO] [stderr] 101 | for i in 0..self.state.context.data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `data[..self.state.context.data.len()].clone_from_slice(&self.state.context.data[..])` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/vm/eval/precompiled.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | / match kececrec(&data) { [INFO] [stderr] 105 | | Ok(mut ret) => { [INFO] [stderr] 106 | | for i in 0..12 { [INFO] [stderr] 107 | | ret[i] = 0u8; [INFO] [stderr] ... | [INFO] [stderr] 111 | | Err(_) => (), [INFO] [stderr] 112 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 104 | if let Ok(mut ret) = kececrec(&data) { [INFO] [stderr] 105 | for i in 0..12 { [INFO] [stderr] 106 | ret[i] = 0u8; [INFO] [stderr] 107 | } [INFO] [stderr] 108 | self.state.out = ret.as_ref().into(); [INFO] [stderr] 109 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `ret`. [INFO] [stderr] --> src/vm/eval/precompiled.rs:106:30 [INFO] [stderr] | [INFO] [stderr] 106 | 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] 106 | for in ret.iter_mut().take(12) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/vm/eval/precompiled.rs:121:38 [INFO] [stderr] | [INFO] [stderr] 121 | let recid = RecoveryId::from_i32(data[63] as i32)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i32::from(data[63])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/vm/eval/mod.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | InvokeCall(Context, (M256, M256)), [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/vm/eval/mod.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | InvokeCall(Context, (M256, M256)), [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/vm/eval/mod.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | InvokeCall(Context, (M256, M256)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/vm/eval/mod.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | InvokeCall(Context, (M256, M256)), [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: identical conversion [INFO] [stderr] --> src/vm/mod.rs:142:66 [INFO] [stderr] | [INFO] [stderr] 142 | 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] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/vm/eval/mod.rs:142:24 [INFO] [stderr] | [INFO] [stderr] 142 | patch: self.state.patch.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 142 | patch: &(*self.state.patch).clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 142 | patch: &vm::patch::Patch::clone(self.state.patch), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/vm/eval/mod.rs:323:9 [INFO] [stderr] | [INFO] [stderr] 323 | / match &self.status { [INFO] [stderr] 324 | | &MachineStatus::Running => (), [INFO] [stderr] 325 | | _ => panic!(), [INFO] [stderr] 326 | | } [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] | |_________^ [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] 323 | match self.status { [INFO] [stderr] 324 | MachineStatus::Running => (), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/commit/account.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | / match self { [INFO] [stderr] 40 | | &AccountCommitment::Full { [INFO] [stderr] 41 | | address, [INFO] [stderr] 42 | | .. [INFO] [stderr] ... | [INFO] [stderr] 51 | | } => address, [INFO] [stderr] 52 | | } [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] 39 | match *self { [INFO] [stderr] 40 | AccountCommitment::Full { [INFO] [stderr] 41 | address, [INFO] [stderr] 42 | .. [INFO] [stderr] 43 | } => address, [INFO] [stderr] 44 | AccountCommitment::Code { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/commit/account.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | / match self { [INFO] [stderr] 88 | | &Account::Full { [INFO] [stderr] 89 | | address, [INFO] [stderr] 90 | | .. [INFO] [stderr] ... | [INFO] [stderr] 98 | | } => address, [INFO] [stderr] 99 | | } [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] 87 | match *self { [INFO] [stderr] 88 | Account::Full { [INFO] [stderr] 89 | address, [INFO] [stderr] 90 | .. [INFO] [stderr] 91 | } => address, [INFO] [stderr] 92 | Account::IncreaseBalance(address, _) => address, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: Could not compile `esvm`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/vm/commit/account.rs:244:23 [INFO] [stderr] | [INFO] [stderr] 244 | return Ok(self.codes.get(&address).unwrap().as_slice()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.codes[&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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/commit/account.rs:248:13 [INFO] [stderr] | [INFO] [stderr] 248 | / match self.accounts.get(&address).unwrap() { [INFO] [stderr] 249 | | &Account::Full { [INFO] [stderr] 250 | | ref code, [INFO] [stderr] 251 | | .. [INFO] [stderr] ... | [INFO] [stderr] 259 | | &Account::DecreaseBalance(address, _) => return Err(RequireError::Account(address)), [INFO] [stderr] 260 | | } [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] 248 | match *self.accounts.get(&address).unwrap() { [INFO] [stderr] 249 | Account::Full { [INFO] [stderr] 250 | ref code, [INFO] [stderr] 251 | .. [INFO] [stderr] 252 | } => return Ok(code.as_slice()), [INFO] [stderr] 253 | Account::Create { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/vm/commit/account.rs:248:19 [INFO] [stderr] | [INFO] [stderr] 248 | 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/vm/commit/account.rs:270:13 [INFO] [stderr] | [INFO] [stderr] 270 | / match self.accounts.get(&address).unwrap() { [INFO] [stderr] 271 | | &Account::Full { [INFO] [stderr] 272 | | nonce, [INFO] [stderr] 273 | | .. [INFO] [stderr] ... | [INFO] [stderr] 280 | | _ => (), [INFO] [stderr] 281 | | } [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] 270 | match *self.accounts.get(&address).unwrap() { [INFO] [stderr] 271 | Account::Full { [INFO] [stderr] 272 | nonce, [INFO] [stderr] 273 | .. [INFO] [stderr] 274 | } => return Ok(nonce), [INFO] [stderr] 275 | Account::Create { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/vm/commit/account.rs:270:19 [INFO] [stderr] | [INFO] [stderr] 270 | 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/vm/commit/account.rs:291:13 [INFO] [stderr] | [INFO] [stderr] 291 | / match self.accounts.get(&address).unwrap() { [INFO] [stderr] 292 | | &Account::Full { [INFO] [stderr] 293 | | balance, [INFO] [stderr] 294 | | .. [INFO] [stderr] ... | [INFO] [stderr] 301 | | _ => (), [INFO] [stderr] 302 | | } [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] 291 | match *self.accounts.get(&address).unwrap() { [INFO] [stderr] 292 | Account::Full { [INFO] [stderr] 293 | balance, [INFO] [stderr] 294 | .. [INFO] [stderr] 295 | } => return Ok(balance), [INFO] [stderr] 296 | Account::Create { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/vm/commit/account.rs:291:19 [INFO] [stderr] | [INFO] [stderr] 291 | 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/vm/commit/account.rs:312:13 [INFO] [stderr] | [INFO] [stderr] 312 | / match self.accounts.get(&address).unwrap() { [INFO] [stderr] 313 | | &Account::Full { [INFO] [stderr] 314 | | ref changing_storage, [INFO] [stderr] 315 | | .. [INFO] [stderr] ... | [INFO] [stderr] 322 | | _ => (), [INFO] [stderr] 323 | | } [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] 312 | match *self.accounts.get(&address).unwrap() { [INFO] [stderr] 313 | Account::Full { [INFO] [stderr] 314 | ref changing_storage, [INFO] [stderr] 315 | .. [INFO] [stderr] 316 | } => return Ok(changing_storage), [INFO] [stderr] 317 | Account::Create { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/vm/commit/account.rs:312:19 [INFO] [stderr] | [INFO] [stderr] 312 | 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/vm/commit/account.rs:333:13 [INFO] [stderr] | [INFO] [stderr] 333 | / match self.accounts.get_mut(&address).unwrap() { [INFO] [stderr] 334 | | &mut Account::Full { [INFO] [stderr] 335 | | ref mut changing_storage, [INFO] [stderr] 336 | | .. [INFO] [stderr] ... | [INFO] [stderr] 343 | | _ => (), [INFO] [stderr] 344 | | } [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] 333 | match *self.accounts.get_mut(&address).unwrap() { [INFO] [stderr] 334 | Account::Full { [INFO] [stderr] 335 | ref mut changing_storage, [INFO] [stderr] 336 | .. [INFO] [stderr] 337 | } => return Ok(changing_storage), [INFO] [stderr] 338 | Account::Create { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/commit/account.rs:388:9 [INFO] [stderr] | [INFO] [stderr] 388 | / match self.accounts.get_mut(&address).unwrap() { [INFO] [stderr] 389 | | &mut Account::Create { ref mut code, .. } => { [INFO] [stderr] 390 | | *code = new_code.into(); [INFO] [stderr] 391 | | }, [INFO] [stderr] 392 | | _ => panic!(), [INFO] [stderr] 393 | | } [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] 388 | match *self.accounts.get_mut(&address).unwrap() { [INFO] [stderr] 389 | Account::Create { ref mut code, .. } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/transaction.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | / match self { [INFO] [stderr] 39 | | &Transaction::MessageCall { caller, .. } => caller, [INFO] [stderr] 40 | | &Transaction::ContractCreation { caller, .. } => caller, [INFO] [stderr] 41 | | } [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] 38 | match *self { [INFO] [stderr] 39 | Transaction::MessageCall { caller, .. } => caller, [INFO] [stderr] 40 | Transaction::ContractCreation { caller, .. } => caller, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/transaction.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | / match self { [INFO] [stderr] 47 | | &Transaction::MessageCall { [INFO] [stderr] 48 | | ref data, .. [INFO] [stderr] 49 | | } => { [INFO] [stderr] ... | [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | } [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] 46 | match *self { [INFO] [stderr] 47 | Transaction::MessageCall { [INFO] [stderr] 48 | ref data, .. [INFO] [stderr] 49 | } => { [INFO] [stderr] 50 | for d in data { [INFO] [stderr] 51 | if *d == 0 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vm/transaction.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | / match self { [INFO] [stderr] 120 | | &Transaction::MessageCall { gas_limit, .. } => gas_limit, [INFO] [stderr] 121 | | &Transaction::ContractCreation { gas_limit, .. } => gas_limit, [INFO] [stderr] 122 | | } [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] 119 | match *self { [INFO] [stderr] 120 | Transaction::MessageCall { gas_limit, .. } => gas_limit, [INFO] [stderr] 121 | Transaction::ContractCreation { gas_limit, .. } => gas_limit, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/vm/transaction.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 134 | / Constructing { [INFO] [stderr] 135 | | transaction: Transaction, [INFO] [stderr] 136 | | block: BlockHeader, [INFO] [stderr] 137 | | patch: &'static Patch, [INFO] [stderr] ... | [INFO] [stderr] 140 | | blockhash_state: BlockhashState, [INFO] [stderr] 141 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/vm/transaction.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 134 | / Constructing { [INFO] [stderr] 135 | | transaction: Transaction, [INFO] [stderr] 136 | | block: BlockHeader, [INFO] [stderr] 137 | | patch: &'static Patch, [INFO] [stderr] ... | [INFO] [stderr] 140 | | blockhash_state: BlockhashState, [INFO] [stderr] 141 | | }, [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 all patterns [INFO] [stderr] --> src/vm/transaction.rs:272:38 [INFO] [stderr] | [INFO] [stderr] 272 | ccode_deposit = Some(match transaction { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 273 | | &Transaction::MessageCall { .. } => false, [INFO] [stderr] 274 | | &Transaction::ContractCreation { .. } => true, [INFO] [stderr] 275 | | }); [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] 272 | ccode_deposit = Some(match *transaction { [INFO] [stderr] 273 | Transaction::MessageCall { .. } => false, [INFO] [stderr] 274 | Transaction::ContractCreation { .. } => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/vm/mod.rs:142:66 [INFO] [stderr] | [INFO] [stderr] 142 | 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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `esvm`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "dbb9a394820cc6b6acf871947ca541f9ab410352ff0366dd4caa6683e23a315f"` [INFO] running `"docker" "rm" "-f" "dbb9a394820cc6b6acf871947ca541f9ab410352ff0366dd4caa6683e23a315f"` [INFO] [stdout] dbb9a394820cc6b6acf871947ca541f9ab410352ff0366dd4caa6683e23a315f