[INFO] cloning repository https://github.com/lucyoa/evm-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lucyoa/evm-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flucyoa%2Fevm-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flucyoa%2Fevm-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 109bf1c1c26296360f7febd0506cac480990b785
[INFO] checking lucyoa/evm-rust against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flucyoa%2Fevm-rust" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lucyoa/evm-rust
[INFO] finished tweaking git repo https://github.com/lucyoa/evm-rust
[INFO] tweaked toml for git repo https://github.com/lucyoa/evm-rust written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lucyoa/evm-rust on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lucyoa/evm-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8e6a3745cc896e62072a752485bbf6b968baa186dde35be9b0e2bb9d6f4a81d7
[INFO] running `Command { std: "docker" "start" "-a" "8e6a3745cc896e62072a752485bbf6b968baa186dde35be9b0e2bb9d6f4a81d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8e6a3745cc896e62072a752485bbf6b968baa186dde35be9b0e2bb9d6f4a81d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8e6a3745cc896e62072a752485bbf6b968baa186dde35be9b0e2bb9d6f4a81d7", kill_on_drop: false }`
[INFO] [stdout] 8e6a3745cc896e62072a752485bbf6b968baa186dde35be9b0e2bb9d6f4a81d7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dunmustuse_in_always_ok" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 15f7118cae88795ca0480121bd264ae84cc060924aebcbc16fa70488a8496d44
[INFO] running `Command { std: "docker" "start" "-a" "15f7118cae88795ca0480121bd264ae84cc060924aebcbc16fa70488a8496d44", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.146
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling rustix v0.37.20
[INFO] [stderr]     Checking regex-syntax v0.7.2
[INFO] [stderr]     Checking keccak v0.1.4
[INFO] [stderr]     Checking log v0.4.19
[INFO] [stderr]     Checking termcolor v1.2.0
[INFO] [stderr]     Checking ethnum v1.3.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking aho-corasick v1.0.2
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking regex v1.8.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking sha3 v0.10.8
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking colored v2.0.0
[INFO] [stderr]     Checking is-terminal v0.4.7
[INFO] [stderr]     Checking env_logger v0.10.0
[INFO] [stderr]     Checking evm-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Read` and `self`
[INFO] [stdout]  --> src/main.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self,Read};
[INFO] [stdout]   |               ^^^^ ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/evm.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static::lazy_static`
[INFO] [stdout]  --> src/evm.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use lazy_static::lazy_static;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read` and `self`
[INFO] [stdout]  --> src/main.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self,Read};
[INFO] [stdout]   |               ^^^^ ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/evm.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static::lazy_static`
[INFO] [stdout]  --> src/evm.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use lazy_static::lazy_static;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/evm.rs:24:16
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(mut blockchain: &'a mut blockchain::BlockChain, ctx: context::CTX) -> EVM {
[INFO] [stdout]    |                ----^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/evm.rs:264:13
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let i: usize;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/evm.rs:279:13
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let mut account: &mut blockchain::Account = self.blockchain.get_account(address);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/evm.rs:363:13
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut result: U256 = a.wrapping_pow(b.as_u32());
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/evm.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let mut y: U256;
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_bytes`
[INFO] [stdout]    --> src/evm.rs:380:21
[INFO] [stdout]     |
[INFO] [stdout] 380 |                 let num_bytes = 32 - (b + 1);
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/evm.rs:530:13
[INFO] [stdout]     |
[INFO] [stdout] 530 |         let result: U256 = U256::new(0);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_offset`
[INFO] [stdout]    --> src/evm.rs:566:13
[INFO] [stdout]     |
[INFO] [stdout] 566 |         let dest_offset = self.stack_pop().as_usize();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_offset`
[INFO] [stdout]    --> src/evm.rs:580:13
[INFO] [stdout]     |
[INFO] [stdout] 580 |         let dest_offset = self.stack_pop().as_usize();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/evm.rs:843:13
[INFO] [stdout]     |
[INFO] [stdout] 843 |         let mut data: Vec<u8> = utils::encode_rlp(address, account.nonce);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `returndata`
[INFO] [stdout]     --> src/evm.rs:1096:13
[INFO] [stdout]      |
[INFO] [stdout] 1096 |         let returndata = vm.run();
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_returndata`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/blockchain.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut contract_account = self.accounts.get_mut(&address).unwrap();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/blockchain.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let mut balance = contract_account.balance;
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/blockchain.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut recipient_account = self.accounts.get_mut(&recipient).unwrap();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/blockchain.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut account = self.accounts.get_mut(&address).unwrap();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut tx = context::TX::new(origin, gasprice);
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let mut msg = context::MSG::new(from, to, calldata, value, gas);
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut ctx = context::CTX::new(
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let mut returndata: Vec<u8>;
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `success` is never read
[INFO] [stdout]   --> src/main.rs:60:29
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut success: bool = false;
[INFO] [stdout]    |                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `to` is never read
[INFO] [stdout]   --> src/context.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct MSG {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] 19 |     pub from: U256,
[INFO] [stdout] 20 |     pub to: U256,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data`, `topic1`, `topic2`, `topic3`, and `topic4` are never read
[INFO] [stdout]   --> src/blockchain.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Log {
[INFO] [stdout]    |        --- fields in this struct
[INFO] [stdout] 25 |     pub data: Vec<u8>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 26 |     pub topic1: U256,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 27 |     pub topic2: U256,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 28 |     pub topic3: U256,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 29 |     pub topic4: U256
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/evm.rs:24:86
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(mut blockchain: &'a mut blockchain::BlockChain, ctx: context::CTX) -> EVM {
[INFO] [stdout]    |                                 -- the lifetime is named here                        ^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(mut blockchain: &'a mut blockchain::BlockChain, ctx: context::CTX) -> EVM<'a> {
[INFO] [stdout]    |                                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<u128, Infallible>
[INFO] [stdout]   --> src/evm.rs:47:44
[INFO] [stdout]    |
[INFO] [stdout] 47 |             let gas_cost: U256 = U256::new(instruction.gas_cost.try_into().unwrap());
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/evm.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let N: U256 = self.stack_pop();
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/evm.rs:353:13
[INFO] [stdout]     |
[INFO] [stdout] 353 |         let N: U256 = self.stack_pop();
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/instructions.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn new(name: &str, gas_cost: u32, operands: usize) -> Instruction {
[INFO] [stdout]    |                  ^^^^ the lifetime is elided here         ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn new(name: &str, gas_cost: u32, operands: usize) -> Instruction<'_> {
[INFO] [stdout]    |                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/evm.rs:24:16
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(mut blockchain: &'a mut blockchain::BlockChain, ctx: context::CTX) -> EVM {
[INFO] [stdout]    |                ----^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `evm-rust` (bin "evm-rust" test) due to 1 previous error; 29 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/evm.rs:264:13
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let i: usize;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/evm.rs:279:13
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let mut account: &mut blockchain::Account = self.blockchain.get_account(address);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/evm.rs:363:13
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut result: U256 = a.wrapping_pow(b.as_u32());
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/evm.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let mut y: U256;
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_bytes`
[INFO] [stdout]    --> src/evm.rs:380:21
[INFO] [stdout]     |
[INFO] [stdout] 380 |                 let num_bytes = 32 - (b + 1);
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/evm.rs:530:13
[INFO] [stdout]     |
[INFO] [stdout] 530 |         let result: U256 = U256::new(0);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_offset`
[INFO] [stdout]    --> src/evm.rs:566:13
[INFO] [stdout]     |
[INFO] [stdout] 566 |         let dest_offset = self.stack_pop().as_usize();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest_offset`
[INFO] [stdout]    --> src/evm.rs:580:13
[INFO] [stdout]     |
[INFO] [stdout] 580 |         let dest_offset = self.stack_pop().as_usize();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/evm.rs:843:13
[INFO] [stdout]     |
[INFO] [stdout] 843 |         let mut data: Vec<u8> = utils::encode_rlp(address, account.nonce);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `returndata`
[INFO] [stdout]     --> src/evm.rs:1096:13
[INFO] [stdout]      |
[INFO] [stdout] 1096 |         let returndata = vm.run();
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_returndata`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/blockchain.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut contract_account = self.accounts.get_mut(&address).unwrap();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/blockchain.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let mut balance = contract_account.balance;
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/blockchain.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut recipient_account = self.accounts.get_mut(&recipient).unwrap();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/blockchain.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut account = self.accounts.get_mut(&address).unwrap();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut tx = context::TX::new(origin, gasprice);
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let mut msg = context::MSG::new(from, to, calldata, value, gas);
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut ctx = context::CTX::new(
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let mut returndata: Vec<u8>;
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `success` is never read
[INFO] [stdout]   --> src/main.rs:60:29
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut success: bool = false;
[INFO] [stdout]    |                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `to` is never read
[INFO] [stdout]   --> src/context.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct MSG {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] 19 |     pub from: U256,
[INFO] [stdout] 20 |     pub to: U256,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data`, `topic1`, `topic2`, `topic3`, and `topic4` are never read
[INFO] [stdout]   --> src/blockchain.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Log {
[INFO] [stdout]    |        --- fields in this struct
[INFO] [stdout] 25 |     pub data: Vec<u8>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 26 |     pub topic1: U256,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 27 |     pub topic2: U256,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 28 |     pub topic3: U256,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 29 |     pub topic4: U256
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/evm.rs:24:86
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(mut blockchain: &'a mut blockchain::BlockChain, ctx: context::CTX) -> EVM {
[INFO] [stdout]    |                                 -- the lifetime is named here                        ^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(mut blockchain: &'a mut blockchain::BlockChain, ctx: context::CTX) -> EVM<'a> {
[INFO] [stdout]    |                                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<u128, Infallible>
[INFO] [stdout]   --> src/evm.rs:47:44
[INFO] [stdout]    |
[INFO] [stdout] 47 |             let gas_cost: U256 = U256::new(instruction.gas_cost.try_into().unwrap());
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/evm.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let N: U256 = self.stack_pop();
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/evm.rs:353:13
[INFO] [stdout]     |
[INFO] [stdout] 353 |         let N: U256 = self.stack_pop();
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/instructions.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn new(name: &str, gas_cost: u32, operands: usize) -> Instruction {
[INFO] [stdout]    |                  ^^^^ the lifetime is elided here         ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn new(name: &str, gas_cost: u32, operands: usize) -> Instruction<'_> {
[INFO] [stdout]    |                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `evm-rust` (bin "evm-rust") due to 1 previous error; 29 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "15f7118cae88795ca0480121bd264ae84cc060924aebcbc16fa70488a8496d44", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "15f7118cae88795ca0480121bd264ae84cc060924aebcbc16fa70488a8496d44", kill_on_drop: false }`
[INFO] [stdout] 15f7118cae88795ca0480121bd264ae84cc060924aebcbc16fa70488a8496d44
