[INFO] cloning repository https://github.com/tosichain/multithread-merkle-tree [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tosichain/multithread-merkle-tree" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftosichain%2Fmultithread-merkle-tree", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftosichain%2Fmultithread-merkle-tree'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ab2fdca5873b78ff9ce22cb58fcb488d2ca237d9 [INFO] testing tosichain/multithread-merkle-tree against 1.86.0 for beta-1.87-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftosichain%2Fmultithread-merkle-tree" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/tosichain/multithread-merkle-tree on toolchain 1.86.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.86.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/tosichain/multithread-merkle-tree [INFO] finished tweaking git repo https://github.com/tosichain/multithread-merkle-tree [INFO] tweaked toml for git repo https://github.com/tosichain/multithread-merkle-tree written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/tosichain/multithread-merkle-tree 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" "+1.86.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded sscanf v0.4.0 [INFO] [stderr] Downloaded parse-display-derive v0.6.0 [INFO] [stderr] Downloaded sscanf_macro v0.4.0 [INFO] [stderr] Downloaded parse-display v0.6.0 [INFO] [stderr] Downloaded rust_decimal_macros v1.28.1 [INFO] [stderr] Downloaded fmmap v0.3.2 [INFO] [stderr] Downloaded memmapix v0.6.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+1.86.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3c903f618eea0828d761a40ac964e83d7cfbc2b89e9cf063690d88eb47995318 [INFO] running `Command { std: "docker" "start" "-a" "3c903f618eea0828d761a40ac964e83d7cfbc2b89e9cf063690d88eb47995318", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3c903f618eea0828d761a40ac964e83d7cfbc2b89e9cf063690d88eb47995318", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3c903f618eea0828d761a40ac964e83d7cfbc2b89e9cf063690d88eb47995318", kill_on_drop: false }` [INFO] [stdout] 3c903f618eea0828d761a40ac964e83d7cfbc2b89e9cf063690d88eb47995318 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+1.86.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a122725873062980c56795eaeabbdd40508685d9e239e7bb84d4546ab6a5351d [INFO] running `Command { std: "docker" "start" "-a" "a122725873062980c56795eaeabbdd40508685d9e239e7bb84d4546ab6a5351d", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling proc-macro2 v1.0.52 [INFO] [stderr] Compiling quote v1.0.26 [INFO] [stderr] Compiling unicode-ident v1.0.6 [INFO] [stderr] Compiling libc v0.2.139 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.15 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling typenum v1.16.0 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling io-lifetimes v0.7.5 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling memoffset v0.8.0 [INFO] [stderr] Compiling generic-array v0.14.6 [INFO] [stderr] Compiling regex-syntax v0.6.28 [INFO] [stderr] Compiling aho-corasick v0.7.20 [INFO] [stderr] Compiling crossbeam-epoch v0.9.14 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling rustix v0.35.13 [INFO] [stderr] Compiling io-lifetimes v1.0.9 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling once_cell v1.17.1 [INFO] [stderr] Compiling linux-raw-sys v0.0.46 [INFO] [stderr] Compiling rustix v0.36.11 [INFO] [stderr] Compiling regex v1.7.1 [INFO] [stderr] Compiling rust_decimal v1.28.1 [INFO] [stderr] Compiling serde v1.0.152 [INFO] [stderr] Compiling unicode-xid v0.2.4 [INFO] [stderr] Compiling rayon-core v1.11.0 [INFO] [stderr] Compiling linux-raw-sys v0.1.4 [INFO] [stderr] Compiling strsim v0.10.0 [INFO] [stderr] Compiling const_format_proc_macros v0.2.29 [INFO] [stderr] Compiling crossbeam-deque v0.8.3 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.3 [INFO] [stderr] Compiling num_cpus v1.15.0 [INFO] [stderr] Compiling crossbeam-channel v0.5.7 [INFO] [stderr] Compiling os_str_bytes v6.5.0 [INFO] [stderr] Compiling unicode-width v0.1.10 [INFO] [stderr] Compiling arrayvec v0.7.2 [INFO] [stderr] Compiling clap_lex v0.3.3 [INFO] [stderr] Compiling const_format v0.2.30 [INFO] [stderr] Compiling fs4 v0.6.3 [INFO] [stderr] Compiling memmapix v0.6.3 [INFO] [stderr] Compiling digest v0.10.6 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling bitflags v2.0.2 [INFO] [stderr] Compiling either v1.8.1 [INFO] [stderr] Compiling is-terminal v0.4.5 [INFO] [stderr] Compiling termcolor v1.2.0 [INFO] [stderr] Compiling bytes v1.4.0 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling keccak v0.1.3 [INFO] [stderr] Compiling clap v4.1.11 [INFO] [stderr] Compiling sha3 v0.10.6 [INFO] [stderr] Compiling rayon v1.7.0 [INFO] [stderr] Compiling rust_decimal_macros v1.28.1 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling structmeta-derive v0.1.6 [INFO] [stderr] Compiling sscanf_macro v0.4.0 [INFO] [stderr] Compiling enum_dispatch v0.3.11 [INFO] [stderr] Compiling structmeta v0.1.6 [INFO] [stderr] Compiling parse-display-derive v0.6.0 [INFO] [stderr] Compiling sscanf v0.4.0 [INFO] [stderr] Compiling parse-display v0.6.0 [INFO] [stderr] Compiling fmmap v0.3.2 [INFO] [stderr] Compiling merkle-tree-hash v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug` [INFO] [stdout] --> src/back_merkle_tree.rs:135:19 [INFO] [stdout] | [INFO] [stdout] 135 | #[cfg(not(feature = "ndebug"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `ndebug` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/complete_merkle_tree.rs:76:92 [INFO] [stdout] | [INFO] [stdout] 76 | self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push((Box::new(*hash.clone()))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 76 - self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push((Box::new(*hash.clone()))); [INFO] [stdout] 76 + self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push(Box::new(*hash.clone())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/full_merkle_tree.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/full_merkle_tree.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Mutex` [INFO] [stdout] --> src/full_merkle_tree.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug` [INFO] [stdout] --> src/full_merkle_tree.rs:95:19 [INFO] [stdout] | [INFO] [stdout] 95 | #[cfg(not(feature = "ndebug"))] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `ndebug` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:29:11 [INFO] [stdout] | [INFO] [stdout] 29 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DerefMut` and `Deref` [INFO] [stdout] --> src/machine_merkle_tree.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | use std::ops::{DerefMut, Deref}; [INFO] [stdout] | ^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:67:19 [INFO] [stdout] | [INFO] [stdout] 67 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:85:15 [INFO] [stdout] | [INFO] [stdout] 85 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:156:15 [INFO] [stdout] | [INFO] [stdout] 156 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/machine_merkle_tree.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(while_true)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:409:15 [INFO] [stdout] | [INFO] [stdout] 409 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:417:15 [INFO] [stdout] | [INFO] [stdout] 417 | #[cfg(feature = "merkle_dump_stats")] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:425:15 [INFO] [stdout] | [INFO] [stdout] 425 | #[cfg(feature = "merkle_dump_stats")] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug` [INFO] [stdout] --> src/machine_merkle_tree.rs:541:19 [INFO] [stdout] | [INFO] [stdout] 541 | #[cfg(not(feature = "ndebug"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `ndebug` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/merkle_tree_proof.rs:90:16 [INFO] [stdout] | [INFO] [stdout] 90 | if (bit) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 90 - if (bit) { [INFO] [stdout] 90 + if bit { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/merkle_tree_proof.rs:108:16 [INFO] [stdout] | [INFO] [stdout] 108 | if (bit) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 108 - if (bit) { [INFO] [stdout] 108 + if bit { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::complete_merkle_tree::*` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::complete_merkle_tree::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::full_merkle_tree::*` [INFO] [stdout] --> src/main.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::full_merkle_tree::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::machine_merkle_tree::MachineMerkleTree` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::machine_merkle_tree::MachineMerkleTree; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `child` is never read [INFO] [stdout] --> src/machine_merkle_tree.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | let mut child: Option<*mut Box> = None; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/machine_merkle_tree.rs:292:13 [INFO] [stdout] | [INFO] [stdout] 292 | for i in 0..MachineMerkleTree::get_log2_root_size() - log2_size { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hash` is never read [INFO] [stdout] --> src/machine_merkle_tree.rs:341:17 [INFO] [stdout] | [INFO] [stdout] 341 | hash = curr_hash; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hash` is never read [INFO] [stdout] --> src/machine_merkle_tree.rs:456:25 [INFO] [stdout] | [INFO] [stdout] 456 | let mut hash: HashType = Default::default(); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/merkle_tree_hash.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | let end: isize = 0; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/merkle_tree_hash.rs:18:44 [INFO] [stdout] | [INFO] [stdout] 18 | fn intval(pre: &String, strl: &mut String, val: &mut isize) -> bool{ [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/merkle_tree_hash.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | let mut res = strl.clone(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `now` [INFO] [stdout] --> src/main.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | let now = Instant::now(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_now` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:112:21 [INFO] [stdout] | [INFO] [stdout] 112 | let mut leaf_hash: Box>; [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:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | let mut input_name: String = matches.get_one::("input").unwrap().clone(); [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:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut file = Arc::new(MmapFile::open(input_name.clone()).unwrap()); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HashType` is never used [INFO] [stdout] --> src/main.rs:20:6 [INFO] [stdout] | [INFO] [stdout] 20 | type HashType = Box>; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HasherType` is never used [INFO] [stdout] --> src/main.rs:21:6 [INFO] [stdout] | [INFO] [stdout] 21 | type HasherType = sha3::Keccak256; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ProofType` is never used [INFO] [stdout] --> src/back_merkle_tree.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type ProofType = MerkleTreeProof; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_next_leaf_proof` is never used [INFO] [stdout] --> src/back_merkle_tree.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl BackMerkleTree { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn get_next_leaf_proof(&self) -> ProofType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `AddressType` is never used [INFO] [stdout] --> src/complete_merkle_tree.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | type AddressType = u64; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HasherType` is never used [INFO] [stdout] --> src/complete_merkle_tree.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type HasherType = sha3::Keccak256; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ProofType` is never used [INFO] [stdout] --> src/complete_merkle_tree.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type ProofType = MerkleTreeProof; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `m_log2_root_size`, `m_log2_leaf_size`, `m_pristine`, and `m_tree` are never read [INFO] [stdout] --> src/complete_merkle_tree.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct CompleteMerkleTree { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 15 | pub m_log2_root_size: isize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | pub m_log2_leaf_size: isize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | pub m_pristine: PristineMerkleTree, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 18 | pub m_tree: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CompleteMerkleTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/complete_merkle_tree.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl CompleteMerkleTree { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 22 | pub fn complete_merkle_tree(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | const fn get_log2_root_size(&self) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn get_root_hash(&mut self) -> HashType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | const fn get_log2_leaf_size(&self) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn get_proof(&mut self, address: AddressType, log2_size: isize) -> ProofType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn push_back(&mut self, hash: &HashType) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | fn check_log2_sizes(log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | fn get_node_hash(&mut self, address: AddressType, log2_size: isize) -> HashType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | fn bubble_up(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | fn get_level(&self, log2_size: isize) -> LevelType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | fn get_level_mut(&mut self, log2_size: isize) -> &mut LevelType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HasherType` is never used [INFO] [stdout] --> src/full_merkle_tree.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type HasherType = sha3::Keccak256; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ProofType` is never used [INFO] [stdout] --> src/full_merkle_tree.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type ProofType = MerkleTreeProof; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `m_log2_root_size`, `m_log2_leaf_size`, `m_max_leaves`, and `m_tree` are never read [INFO] [stdout] --> src/full_merkle_tree.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct FullMerkleTree { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 16 | [INFO] [stdout] 17 | m_log2_root_size: isize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | m_log2_leaf_size: isize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | m_max_leaves: AddressType, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 20 | pub m_tree: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FullMerkleTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/full_merkle_tree.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl FullMerkleTree { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 25 | [INFO] [stdout] 26 | pub fn full_merkle_tree(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn full_merkle_tree_with_leaves(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize, leaves: &Vec isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | const fn get_log2_root_size(&self) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn get_root_hash(&self) -> &HashType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | fn get_node_hash(&self, address: AddressType, log2_size: isize) -> &HashType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | const fn left_child_index(index: isize) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | const fn right_child_index(index: isize) -> isize{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn get_proof(&self, address: AddressType, log2_size: isize) -> ProofType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn check_log2_sizes(log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn init_pristine_subtree(&mut self, pristine: &PristineMerkleTree, index: isize, log2_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | fn init_subtree(&mut self, h: &mut HasherType, index: isize, log2_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | fn init_tree(&mut self, pristine: &PristineMerkleTree, leaves: &Vec) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | fn get_node_index(&self, address: AddressType, log2_size: isize) -> AddressType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HasherType` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | type HasherType = sha3::Keccak256; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ProofType` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | type ProofType = MerkleTreeProof; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOG2_ROOT_SIZE` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const LOG2_ROOT_SIZE: isize = 64; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOG2_WORD_SIZE` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:18:7 [INFO] [stdout] | [INFO] [stdout] 18 | const LOG2_WORD_SIZE: isize = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOG2_PAGE_SIZE` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | const LOG2_PAGE_SIZE: isize = 12; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `M_PAGE_INDEX_MASK` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const M_PAGE_INDEX_MASK: AddressType = ((!0u64) >> (64 - LOG2_ROOT_SIZE)) << LOG2_PAGE_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `M_PAGE_OFFSET_MASK` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const M_PAGE_OFFSET_MASK: AddressType = !M_PAGE_INDEX_MASK; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `m_page_node_map`, `m_root_storage`, `m_root`, `m_merkle_update_nonce`, and `m_merkle_update_fifo` are never read [INFO] [stdout] --> src/machine_merkle_tree.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct MachineMerkleTree{ [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 25 | [INFO] [stdout] 26 | m_page_node_map: BTreeMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 27 | pub m_root_storage: MRootStorage, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | m_root: Option<*mut Box>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 33 | [INFO] [stdout] 34 | m_merkle_update_nonce: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 35 | [INFO] [stdout] 36 | m_merkle_update_fifo: VecDeque<(isize, *mut Box)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MachineMerkleTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `m_root_storage` and `m_storage_mem` are never read [INFO] [stdout] --> src/machine_merkle_tree.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct MRootStorage { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 44 | pub m_root_storage: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 45 | m_storage_mem: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MRootStorage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `destroy_merkle_tree`, `destroy_merkle_tree_node`, and `destroy_node` are never used [INFO] [stdout] --> src/machine_merkle_tree.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl MRootStorage { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 51 | pub fn destroy_merkle_tree(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | fn destroy_merkle_tree_node(&self, node: Option<&*mut Box>, log2_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | fn destroy_node(&mut self, node: *mut Box) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `hash`, `parent`, `child`, and `mark` are never read [INFO] [stdout] --> src/machine_merkle_tree.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 99 | pub struct TreeNode{ [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 100 | hash: HashType, [INFO] [stdout] | ^^^^ [INFO] [stdout] 101 | parent: Option<*mut Box>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 102 | pub child: Option>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 103 | mark: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TreeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/machine_merkle_tree.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 107 | impl <'a> MachineMerkleTree { [INFO] [stdout] | --------------------------- associated items in this implementation [INFO] [stdout] 108 | [INFO] [stdout] 109 | fn pristine_hashes() -> PristineMerkleTree { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | const fn get_log2_root_size() -> isize{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | const fn get_log2_word_size() -> isize{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | fn get_page_index(address: AddressType) -> AddressType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | const fn get_log2_page_size() -> isize{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | fn get_page_node(&mut self, page_index: AddressType) -> Option<*mut Box> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | fn get_offset_in_page(address: AddressType) -> AddressType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | fn set_page_node_map(&mut self, page_index: AddressType, node: *mut Box) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | fn create_node(&mut self) -> Option<*mut Box>{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn new_page_node(&mut self, page_index: AddressType) -> Option<*mut Box> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | fn get_page_node_hash_start(&self, h: &mut HasherType, start: *mut u8, log2_size: isize, hash: &mut HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub fn get_page_node_hash(&self, h: &mut HasherType, page_data: *mut u8, hash: &mut HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn get_page_node_hash_address(&mut self, page_index: AddressType, hash: &mut HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | fn get_child_hash(&self, child_log2_size: isize, node: *mut Box, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 270 | fn update_inner_node_hash(&self, h: &mut HasherType, log2_size: isize, node: *mut Box) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | fn dump_hash(hash: &HashType) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | fn get_pristine_hash(log2_size: isize) -> HashType{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | fn dump_merkle_tree(&self, node: Option<&*mut Box>, address: u64, log2_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 312 | fn get_inside_page_sibling_hashes_h(&self, h: &mut HasherType, address: AddressType, log2_size: isize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 346 | fn get_inside_page_sibling_hashes(&self, address: AddressType, log2_size: isize, hash: &mut HashType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 353 | pub fn dump_merkle_tree_empty(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 357 | pub fn begin_update(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 362 | pub fn update_page_node_hash(&mut self, page_index: AddressType, hash: &HashType) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 382 | pub fn end_update(&mut self, h: &mut HasherType) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 398 | pub fn machine_merkle_tree_initialization(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 415 | pub fn machine_merkle_tree(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 432 | pub fn get_root_hash(&self, hash: &mut HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 438 | pub fn verify_tree(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 443 | fn verify_tree_with_arguments(&self, h: &mut HasherType, node: *mut Box, log2_size: isize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 468 | fn get_proof(&self, target_address: AddressType, log2_target_size: isize, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stringval` is never used [INFO] [stdout] --> src/merkle_tree_hash.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn stringval(pre: String, strl: String, val: &mut String) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `intval` is never used [INFO] [stdout] --> src/merkle_tree_hash.rs:18:4 [INFO] [stdout] | [INFO] [stdout] 18 | fn intval(pre: &String, strl: &mut String, val: &mut isize) -> bool{ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_hash` is never used [INFO] [stdout] --> src/merkle_tree_hash.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn read_hash(f: File) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `help` is never used [INFO] [stdout] --> src/merkle_tree_hash.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn help(name: &mut str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HasherType` is never used [INFO] [stdout] --> src/merkle_tree_proof.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | type HasherType = sha3::Keccak256; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/merkle_tree_proof.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl MerkleTreeProof{ [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] 20 | [INFO] [stdout] 21 | pub fn merkle_tree_proof(&mut self, log2_root_size: isize, log2_target_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn set_target_address(&mut self, target_address: AddressType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn set_target_hash(&mut self, hash: &HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn set_root_hash(&mut self, hash: &HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn get_sibling_hash(&self, log2_size: isize) -> &HashType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn set_sibling_hash(&mut self, hash: &HashType, log2_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn verify(&mut self, h: &mut HasherType) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn bubble_up(&self, h: &mut HasherType, new_target_hash: &HashType) -> HashType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn bubble_up_self(&mut self, h: &mut HasherType) -> HashType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | fn slice(&mut self, h: &mut HasherType, new_log2_root_size: isize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | fn log2_size_to_index(&self, log2_size: isize) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/complete_merkle_tree.rs:109:27 [INFO] [stdout] | [INFO] [stdout] 109 | if address < level.clone().len() as u64{ [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `[Box>]` does not implement `Clone`, so calling `clone` on `&[Box>]` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/machine_merkle_tree.rs:375:13 [INFO] [stdout] | [INFO] [stdout] 375 | &self.m_merkle_update_fifo.push_back((MachineMerkleTree::get_log2_page_size() + 1, (*node.unwrap()).parent.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 375 | let _ = &self.m_merkle_update_fifo.push_back((MachineMerkleTree::get_log2_page_size() + 1, (*node.unwrap()).parent.unwrap())); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.09s [INFO] running `Command { std: "docker" "inspect" "a122725873062980c56795eaeabbdd40508685d9e239e7bb84d4546ab6a5351d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a122725873062980c56795eaeabbdd40508685d9e239e7bb84d4546ab6a5351d", kill_on_drop: false }` [INFO] [stdout] a122725873062980c56795eaeabbdd40508685d9e239e7bb84d4546ab6a5351d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+1.86.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6191a8899a96677b314b618216668a1e9b9a6b23869777d946144df9d30f594c [INFO] running `Command { std: "docker" "start" "-a" "6191a8899a96677b314b618216668a1e9b9a6b23869777d946144df9d30f594c", kill_on_drop: false }` [INFO] [stderr] Compiling merkle-tree-hash v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug` [INFO] [stdout] --> src/back_merkle_tree.rs:135:19 [INFO] [stdout] | [INFO] [stdout] 135 | #[cfg(not(feature = "ndebug"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `ndebug` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/complete_merkle_tree.rs:76:92 [INFO] [stdout] | [INFO] [stdout] 76 | self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push((Box::new(*hash.clone()))); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 76 - self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push((Box::new(*hash.clone()))); [INFO] [stdout] 76 + self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push(Box::new(*hash.clone())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/full_merkle_tree.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/full_merkle_tree.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Mutex` [INFO] [stdout] --> src/full_merkle_tree.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug` [INFO] [stdout] --> src/full_merkle_tree.rs:95:19 [INFO] [stdout] | [INFO] [stdout] 95 | #[cfg(not(feature = "ndebug"))] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `ndebug` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:29:11 [INFO] [stdout] | [INFO] [stdout] 29 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DerefMut` and `Deref` [INFO] [stdout] --> src/machine_merkle_tree.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | use std::ops::{DerefMut, Deref}; [INFO] [stdout] | ^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:67:19 [INFO] [stdout] | [INFO] [stdout] 67 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:85:15 [INFO] [stdout] | [INFO] [stdout] 85 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:156:15 [INFO] [stdout] | [INFO] [stdout] 156 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: denote infinite loops with `loop { ... }` [INFO] [stdout] --> src/machine_merkle_tree.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | while true { [INFO] [stdout] | ^^^^^^^^^^ help: use `loop` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(while_true)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:409:15 [INFO] [stdout] | [INFO] [stdout] 409 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:417:15 [INFO] [stdout] | [INFO] [stdout] 417 | #[cfg(feature = "merkle_dump_stats")] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stdout] --> src/machine_merkle_tree.rs:425:15 [INFO] [stdout] | [INFO] [stdout] 425 | #[cfg(feature = "merkle_dump_stats")] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `ndebug` [INFO] [stdout] --> src/machine_merkle_tree.rs:541:19 [INFO] [stdout] | [INFO] [stdout] 541 | #[cfg(not(feature = "ndebug"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `ndebug` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/merkle_tree_proof.rs:90:16 [INFO] [stdout] | [INFO] [stdout] 90 | if (bit) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 90 - if (bit) { [INFO] [stdout] 90 + if bit { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/merkle_tree_proof.rs:108:16 [INFO] [stdout] | [INFO] [stdout] 108 | if (bit) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 108 - if (bit) { [INFO] [stdout] 108 + if bit { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::complete_merkle_tree::*` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::complete_merkle_tree::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::full_merkle_tree::*` [INFO] [stdout] --> src/main.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::full_merkle_tree::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::machine_merkle_tree::MachineMerkleTree` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::machine_merkle_tree::MachineMerkleTree; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `child` is never read [INFO] [stdout] --> src/machine_merkle_tree.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | let mut child: Option<*mut Box> = None; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/machine_merkle_tree.rs:292:13 [INFO] [stdout] | [INFO] [stdout] 292 | for i in 0..MachineMerkleTree::get_log2_root_size() - log2_size { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hash` is never read [INFO] [stdout] --> src/machine_merkle_tree.rs:341:17 [INFO] [stdout] | [INFO] [stdout] 341 | hash = curr_hash; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hash` is never read [INFO] [stdout] --> src/machine_merkle_tree.rs:456:25 [INFO] [stdout] | [INFO] [stdout] 456 | let mut hash: HashType = Default::default(); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/merkle_tree_hash.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | let end: isize = 0; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/merkle_tree_hash.rs:18:44 [INFO] [stdout] | [INFO] [stdout] 18 | fn intval(pre: &String, strl: &mut String, val: &mut isize) -> bool{ [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/merkle_tree_hash.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | let mut res = strl.clone(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `now` [INFO] [stdout] --> src/main.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | let now = Instant::now(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_now` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:112:21 [INFO] [stdout] | [INFO] [stdout] 112 | let mut leaf_hash: Box>; [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:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | let mut input_name: String = matches.get_one::("input").unwrap().clone(); [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:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | let mut file = Arc::new(MmapFile::open(input_name.clone()).unwrap()); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HashType` is never used [INFO] [stdout] --> src/main.rs:20:6 [INFO] [stdout] | [INFO] [stdout] 20 | type HashType = Box>; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HasherType` is never used [INFO] [stdout] --> src/main.rs:21:6 [INFO] [stdout] | [INFO] [stdout] 21 | type HasherType = sha3::Keccak256; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ProofType` is never used [INFO] [stdout] --> src/back_merkle_tree.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type ProofType = MerkleTreeProof; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_next_leaf_proof` is never used [INFO] [stdout] --> src/back_merkle_tree.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl BackMerkleTree { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn get_next_leaf_proof(&self) -> ProofType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `AddressType` is never used [INFO] [stdout] --> src/complete_merkle_tree.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | type AddressType = u64; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HasherType` is never used [INFO] [stdout] --> src/complete_merkle_tree.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type HasherType = sha3::Keccak256; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ProofType` is never used [INFO] [stdout] --> src/complete_merkle_tree.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type ProofType = MerkleTreeProof; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `m_log2_root_size`, `m_log2_leaf_size`, `m_pristine`, and `m_tree` are never read [INFO] [stdout] --> src/complete_merkle_tree.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct CompleteMerkleTree { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 15 | pub m_log2_root_size: isize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | pub m_log2_leaf_size: isize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | pub m_pristine: PristineMerkleTree, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 18 | pub m_tree: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CompleteMerkleTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/complete_merkle_tree.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl CompleteMerkleTree { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 22 | pub fn complete_merkle_tree(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | const fn get_log2_root_size(&self) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn get_root_hash(&mut self) -> HashType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | const fn get_log2_leaf_size(&self) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn get_proof(&mut self, address: AddressType, log2_size: isize) -> ProofType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn push_back(&mut self, hash: &HashType) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | fn check_log2_sizes(log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | fn get_node_hash(&mut self, address: AddressType, log2_size: isize) -> HashType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | fn bubble_up(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | fn get_level(&self, log2_size: isize) -> LevelType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | fn get_level_mut(&mut self, log2_size: isize) -> &mut LevelType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HasherType` is never used [INFO] [stdout] --> src/full_merkle_tree.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | type HasherType = sha3::Keccak256; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ProofType` is never used [INFO] [stdout] --> src/full_merkle_tree.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type ProofType = MerkleTreeProof; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `m_log2_root_size`, `m_log2_leaf_size`, `m_max_leaves`, and `m_tree` are never read [INFO] [stdout] --> src/full_merkle_tree.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct FullMerkleTree { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 16 | [INFO] [stdout] 17 | m_log2_root_size: isize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | m_log2_leaf_size: isize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | m_max_leaves: AddressType, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 20 | pub m_tree: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FullMerkleTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/full_merkle_tree.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl FullMerkleTree { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 25 | [INFO] [stdout] 26 | pub fn full_merkle_tree(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn full_merkle_tree_with_leaves(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize, leaves: &Vec isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | const fn get_log2_root_size(&self) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn get_root_hash(&self) -> &HashType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | fn get_node_hash(&self, address: AddressType, log2_size: isize) -> &HashType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | const fn left_child_index(index: isize) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | const fn right_child_index(index: isize) -> isize{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn get_proof(&self, address: AddressType, log2_size: isize) -> ProofType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn check_log2_sizes(log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn init_pristine_subtree(&mut self, pristine: &PristineMerkleTree, index: isize, log2_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | fn init_subtree(&mut self, h: &mut HasherType, index: isize, log2_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | fn init_tree(&mut self, pristine: &PristineMerkleTree, leaves: &Vec) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | fn get_node_index(&self, address: AddressType, log2_size: isize) -> AddressType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HasherType` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | type HasherType = sha3::Keccak256; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ProofType` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | type ProofType = MerkleTreeProof; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOG2_ROOT_SIZE` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const LOG2_ROOT_SIZE: isize = 64; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOG2_WORD_SIZE` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:18:7 [INFO] [stdout] | [INFO] [stdout] 18 | const LOG2_WORD_SIZE: isize = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOG2_PAGE_SIZE` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | const LOG2_PAGE_SIZE: isize = 12; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `M_PAGE_INDEX_MASK` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const M_PAGE_INDEX_MASK: AddressType = ((!0u64) >> (64 - LOG2_ROOT_SIZE)) << LOG2_PAGE_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `M_PAGE_OFFSET_MASK` is never used [INFO] [stdout] --> src/machine_merkle_tree.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const M_PAGE_OFFSET_MASK: AddressType = !M_PAGE_INDEX_MASK; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `m_page_node_map`, `m_root_storage`, `m_root`, `m_merkle_update_nonce`, and `m_merkle_update_fifo` are never read [INFO] [stdout] --> src/machine_merkle_tree.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct MachineMerkleTree{ [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 25 | [INFO] [stdout] 26 | m_page_node_map: BTreeMap>, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 27 | pub m_root_storage: MRootStorage, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | m_root: Option<*mut Box>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 33 | [INFO] [stdout] 34 | m_merkle_update_nonce: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 35 | [INFO] [stdout] 36 | m_merkle_update_fifo: VecDeque<(isize, *mut Box)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MachineMerkleTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `m_root_storage` and `m_storage_mem` are never read [INFO] [stdout] --> src/machine_merkle_tree.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct MRootStorage { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 44 | pub m_root_storage: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 45 | m_storage_mem: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MRootStorage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `destroy_merkle_tree`, `destroy_merkle_tree_node`, and `destroy_node` are never used [INFO] [stdout] --> src/machine_merkle_tree.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl MRootStorage { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 51 | pub fn destroy_merkle_tree(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | fn destroy_merkle_tree_node(&self, node: Option<&*mut Box>, log2_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | fn destroy_node(&mut self, node: *mut Box) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `hash`, `parent`, `child`, and `mark` are never read [INFO] [stdout] --> src/machine_merkle_tree.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 99 | pub struct TreeNode{ [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 100 | hash: HashType, [INFO] [stdout] | ^^^^ [INFO] [stdout] 101 | parent: Option<*mut Box>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 102 | pub child: Option>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 103 | mark: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TreeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/machine_merkle_tree.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 107 | impl <'a> MachineMerkleTree { [INFO] [stdout] | --------------------------- associated items in this implementation [INFO] [stdout] 108 | [INFO] [stdout] 109 | fn pristine_hashes() -> PristineMerkleTree { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | const fn get_log2_root_size() -> isize{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | const fn get_log2_word_size() -> isize{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | fn get_page_index(address: AddressType) -> AddressType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | const fn get_log2_page_size() -> isize{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | fn get_page_node(&mut self, page_index: AddressType) -> Option<*mut Box> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | fn get_offset_in_page(address: AddressType) -> AddressType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | fn set_page_node_map(&mut self, page_index: AddressType, node: *mut Box) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | fn create_node(&mut self) -> Option<*mut Box>{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn new_page_node(&mut self, page_index: AddressType) -> Option<*mut Box> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | fn get_page_node_hash_start(&self, h: &mut HasherType, start: *mut u8, log2_size: isize, hash: &mut HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub fn get_page_node_hash(&self, h: &mut HasherType, page_data: *mut u8, hash: &mut HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn get_page_node_hash_address(&mut self, page_index: AddressType, hash: &mut HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | fn get_child_hash(&self, child_log2_size: isize, node: *mut Box, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 270 | fn update_inner_node_hash(&self, h: &mut HasherType, log2_size: isize, node: *mut Box) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | fn dump_hash(hash: &HashType) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | fn get_pristine_hash(log2_size: isize) -> HashType{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | fn dump_merkle_tree(&self, node: Option<&*mut Box>, address: u64, log2_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 312 | fn get_inside_page_sibling_hashes_h(&self, h: &mut HasherType, address: AddressType, log2_size: isize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 346 | fn get_inside_page_sibling_hashes(&self, address: AddressType, log2_size: isize, hash: &mut HashType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 353 | pub fn dump_merkle_tree_empty(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 357 | pub fn begin_update(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 362 | pub fn update_page_node_hash(&mut self, page_index: AddressType, hash: &HashType) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 382 | pub fn end_update(&mut self, h: &mut HasherType) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 398 | pub fn machine_merkle_tree_initialization(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 415 | pub fn machine_merkle_tree(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 432 | pub fn get_root_hash(&self, hash: &mut HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 438 | pub fn verify_tree(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 443 | fn verify_tree_with_arguments(&self, h: &mut HasherType, node: *mut Box, log2_size: isize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 468 | fn get_proof(&self, target_address: AddressType, log2_target_size: isize, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stringval` is never used [INFO] [stdout] --> src/merkle_tree_hash.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn stringval(pre: String, strl: String, val: &mut String) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `intval` is never used [INFO] [stdout] --> src/merkle_tree_hash.rs:18:4 [INFO] [stdout] | [INFO] [stdout] 18 | fn intval(pre: &String, strl: &mut String, val: &mut isize) -> bool{ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_hash` is never used [INFO] [stdout] --> src/merkle_tree_hash.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn read_hash(f: File) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `help` is never used [INFO] [stdout] --> src/merkle_tree_hash.rs:103:4 [INFO] [stdout] | [INFO] [stdout] 103 | fn help(name: &mut str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HasherType` is never used [INFO] [stdout] --> src/merkle_tree_proof.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | type HasherType = sha3::Keccak256; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/merkle_tree_proof.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl MerkleTreeProof{ [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] 20 | [INFO] [stdout] 21 | pub fn merkle_tree_proof(&mut self, log2_root_size: isize, log2_target_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn set_target_address(&mut self, target_address: AddressType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn set_target_hash(&mut self, hash: &HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn set_root_hash(&mut self, hash: &HashType) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn get_sibling_hash(&self, log2_size: isize) -> &HashType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn set_sibling_hash(&mut self, hash: &HashType, log2_size: isize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn verify(&mut self, h: &mut HasherType) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn bubble_up(&self, h: &mut HasherType, new_target_hash: &HashType) -> HashType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn bubble_up_self(&mut self, h: &mut HasherType) -> HashType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | fn slice(&mut self, h: &mut HasherType, new_log2_root_size: isize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | fn log2_size_to_index(&self, log2_size: isize) -> isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/complete_merkle_tree.rs:109:27 [INFO] [stdout] | [INFO] [stdout] 109 | if address < level.clone().len() as u64{ [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `[Box>]` does not implement `Clone`, so calling `clone` on `&[Box>]` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/machine_merkle_tree.rs:375:13 [INFO] [stdout] | [INFO] [stdout] 375 | &self.m_merkle_update_fifo.push_back((MachineMerkleTree::get_log2_page_size() + 1, (*node.unwrap()).parent.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 375 | let _ = &self.m_merkle_update_fifo.push_back((MachineMerkleTree::get_log2_page_size() + 1, (*node.unwrap()).parent.unwrap())); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.10s [INFO] running `Command { std: "docker" "inspect" "6191a8899a96677b314b618216668a1e9b9a6b23869777d946144df9d30f594c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6191a8899a96677b314b618216668a1e9b9a6b23869777d946144df9d30f594c", kill_on_drop: false }` [INFO] [stdout] 6191a8899a96677b314b618216668a1e9b9a6b23869777d946144df9d30f594c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+1.86.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 3ed0f2484d09f173187b328a42f93e7355a6c51ed181bf04cdad42fb22fc18b8 [INFO] running `Command { std: "docker" "start" "-a" "3ed0f2484d09f173187b328a42f93e7355a6c51ed181bf04cdad42fb22fc18b8", kill_on_drop: false }` [INFO] [stderr] warning: unexpected `cfg` condition value: `ndebug` [INFO] [stderr] --> src/back_merkle_tree.rs:135:19 [INFO] [stderr] | [INFO] [stderr] 135 | #[cfg(not(feature = "ndebug"))] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `ndebug` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/complete_merkle_tree.rs:76:92 [INFO] [stderr] | [INFO] [stderr] 76 | self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push((Box::new(*hash.clone()))); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 76 - self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push((Box::new(*hash.clone()))); [INFO] [stderr] 76 + self.m_tree[(self.m_log2_root_size - self.m_log2_leaf_size) as usize].push(Box::new(*hash.clone())); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread` [INFO] [stderr] --> src/full_merkle_tree.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::thread; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/full_merkle_tree.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Mutex` [INFO] [stderr] --> src/full_merkle_tree.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::sync::Mutex; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `ndebug` [INFO] [stderr] --> src/full_merkle_tree.rs:95:19 [INFO] [stderr] | [INFO] [stderr] 95 | #[cfg(not(feature = "ndebug"))] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `ndebug` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stderr] --> src/machine_merkle_tree.rs:29:11 [INFO] [stderr] | [INFO] [stderr] 29 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DerefMut` and `Deref` [INFO] [stderr] --> src/machine_merkle_tree.rs:4:16 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ops::{DerefMut, Deref}; [INFO] [stderr] | ^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stderr] --> src/machine_merkle_tree.rs:67:19 [INFO] [stderr] | [INFO] [stderr] 67 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stderr] --> src/machine_merkle_tree.rs:85:15 [INFO] [stderr] | [INFO] [stderr] 85 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stderr] --> src/machine_merkle_tree.rs:156:15 [INFO] [stderr] | [INFO] [stderr] 156 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: denote infinite loops with `loop { ... }` [INFO] [stderr] --> src/machine_merkle_tree.rs:169:9 [INFO] [stderr] | [INFO] [stderr] 169 | while true { [INFO] [stderr] | ^^^^^^^^^^ help: use `loop` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(while_true)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stderr] --> src/machine_merkle_tree.rs:409:15 [INFO] [stderr] | [INFO] [stderr] 409 | #[cfg(feature = "merkle_dump_stats")] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stderr] --> src/machine_merkle_tree.rs:417:15 [INFO] [stderr] | [INFO] [stderr] 417 | #[cfg(feature = "merkle_dump_stats")] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `merkle_dump_stats` [INFO] [stderr] --> src/machine_merkle_tree.rs:425:15 [INFO] [stderr] | [INFO] [stderr] 425 | #[cfg(feature = "merkle_dump_stats")] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `merkle_dump_stats` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `ndebug` [INFO] [stderr] --> src/machine_merkle_tree.rs:541:19 [INFO] [stderr] | [INFO] [stderr] 541 | #[cfg(not(feature = "ndebug"))] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `ndebug` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/merkle_tree_proof.rs:90:16 [INFO] [stderr] | [INFO] [stderr] 90 | if (bit) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 90 - if (bit) { [INFO] [stderr] 90 + if bit { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/merkle_tree_proof.rs:108:16 [INFO] [stderr] | [INFO] [stderr] 108 | if (bit) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 108 - if (bit) { [INFO] [stderr] 108 + if bit { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::complete_merkle_tree::*` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use crate::complete_merkle_tree::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::full_merkle_tree::*` [INFO] [stderr] --> src/main.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use crate::full_merkle_tree::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::machine_merkle_tree::MachineMerkleTree` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use crate::machine_merkle_tree::MachineMerkleTree; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `child` is never read [INFO] [stderr] --> src/machine_merkle_tree.rs:168:17 [INFO] [stderr] | [INFO] [stderr] 168 | let mut child: Option<*mut Box> = None; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/machine_merkle_tree.rs:292:13 [INFO] [stderr] | [INFO] [stderr] 292 | for i in 0..MachineMerkleTree::get_log2_root_size() - log2_size { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hash` is never read [INFO] [stderr] --> src/machine_merkle_tree.rs:341:17 [INFO] [stderr] | [INFO] [stderr] 341 | hash = curr_hash; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hash` is never read [INFO] [stderr] --> src/machine_merkle_tree.rs:456:25 [INFO] [stderr] | [INFO] [stderr] 456 | let mut hash: HashType = Default::default(); [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `end` [INFO] [stderr] --> src/merkle_tree_hash.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | let end: isize = 0; [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/merkle_tree_hash.rs:18:44 [INFO] [stderr] | [INFO] [stderr] 18 | fn intval(pre: &String, strl: &mut String, val: &mut isize) -> bool{ [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/merkle_tree_hash.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | let mut res = strl.clone(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `now` [INFO] [stderr] --> src/main.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | let now = Instant::now(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_now` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:112:21 [INFO] [stderr] | [INFO] [stderr] 112 | let mut leaf_hash: Box>; [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | let mut input_name: String = matches.get_one::("input").unwrap().clone(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | let mut file = Arc::new(MmapFile::open(input_name.clone()).unwrap()); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: type alias `HashType` is never used [INFO] [stderr] --> src/main.rs:20:6 [INFO] [stderr] | [INFO] [stderr] 20 | type HashType = Box>; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: type alias `HasherType` is never used [INFO] [stderr] --> src/main.rs:21:6 [INFO] [stderr] | [INFO] [stderr] 21 | type HasherType = sha3::Keccak256; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `ProofType` is never used [INFO] [stderr] --> src/back_merkle_tree.rs:10:6 [INFO] [stderr] | [INFO] [stderr] 10 | type ProofType = MerkleTreeProof; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `get_next_leaf_proof` is never used [INFO] [stderr] --> src/back_merkle_tree.rs:105:12 [INFO] [stderr] | [INFO] [stderr] 24 | impl BackMerkleTree { [INFO] [stderr] | ------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 105 | pub fn get_next_leaf_proof(&self) -> ProofType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `AddressType` is never used [INFO] [stderr] --> src/complete_merkle_tree.rs:7:6 [INFO] [stderr] | [INFO] [stderr] 7 | type AddressType = u64; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `HasherType` is never used [INFO] [stderr] --> src/complete_merkle_tree.rs:8:6 [INFO] [stderr] | [INFO] [stderr] 8 | type HasherType = sha3::Keccak256; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `ProofType` is never used [INFO] [stderr] --> src/complete_merkle_tree.rs:10:6 [INFO] [stderr] | [INFO] [stderr] 10 | type ProofType = MerkleTreeProof; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `m_log2_root_size`, `m_log2_leaf_size`, `m_pristine`, and `m_tree` are never read [INFO] [stderr] --> src/complete_merkle_tree.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 14 | pub struct CompleteMerkleTree { [INFO] [stderr] | ------------------ fields in this struct [INFO] [stderr] 15 | pub m_log2_root_size: isize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] 16 | pub m_log2_leaf_size: isize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] 17 | pub m_pristine: PristineMerkleTree, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 18 | pub m_tree: Vec, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CompleteMerkleTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/complete_merkle_tree.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 21 | impl CompleteMerkleTree { [INFO] [stderr] | ----------------------- associated items in this implementation [INFO] [stderr] 22 | pub fn complete_merkle_tree(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 32 | const fn get_log2_root_size(&self) -> isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 36 | pub fn get_root_hash(&mut self) -> HashType { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 40 | const fn get_log2_leaf_size(&self) -> isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 44 | pub fn get_proof(&mut self, address: AddressType, log2_size: isize) -> ProofType { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 67 | pub fn push_back(&mut self, hash: &HashType) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 81 | fn check_log2_sizes(log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 102 | fn get_node_hash(&mut self, address: AddressType, log2_size: isize) -> HashType { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 116 | fn bubble_up(&mut self) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 147 | fn get_level(&self, log2_size: isize) -> LevelType { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 154 | fn get_level_mut(&mut self, log2_size: isize) -> &mut LevelType { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `HasherType` is never used [INFO] [stderr] --> src/full_merkle_tree.rs:8:6 [INFO] [stderr] | [INFO] [stderr] 8 | type HasherType = sha3::Keccak256; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `ProofType` is never used [INFO] [stderr] --> src/full_merkle_tree.rs:10:6 [INFO] [stderr] | [INFO] [stderr] 10 | type ProofType = MerkleTreeProof; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `m_log2_root_size`, `m_log2_leaf_size`, `m_max_leaves`, and `m_tree` are never read [INFO] [stderr] --> src/full_merkle_tree.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub struct FullMerkleTree { [INFO] [stderr] | -------------- fields in this struct [INFO] [stderr] 16 | [INFO] [stderr] 17 | m_log2_root_size: isize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] 18 | m_log2_leaf_size: isize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] 19 | m_max_leaves: AddressType, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 20 | pub m_tree: Vec, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `FullMerkleTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/full_merkle_tree.rs:26:12 [INFO] [stderr] | [INFO] [stderr] 24 | impl FullMerkleTree { [INFO] [stderr] | ------------------- associated items in this implementation [INFO] [stderr] 25 | [INFO] [stderr] 26 | pub fn full_merkle_tree(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 37 | pub fn full_merkle_tree_with_leaves(&mut self, log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize, leaves: &Vec isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 55 | const fn get_log2_root_size(&self) -> isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 59 | pub fn get_root_hash(&self) -> &HashType { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 63 | fn get_node_hash(&self, address: AddressType, log2_size: isize) -> &HashType { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 67 | const fn left_child_index(index: isize) -> isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 71 | const fn right_child_index(index: isize) -> isize{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 75 | pub fn get_proof(&self, address: AddressType, log2_size: isize) -> ProofType { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 104 | fn check_log2_sizes(log2_root_size: isize, log2_leaf_size: isize, log2_word_size: isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 125 | fn init_pristine_subtree(&mut self, pristine: &PristineMerkleTree, index: isize, log2_size: isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 133 | fn init_subtree(&mut self, h: &mut HasherType, index: isize, log2_size: isize) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 145 | fn init_tree(&mut self, pristine: &PristineMerkleTree, leaves: &Vec) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 160 | fn get_node_index(&self, address: AddressType, log2_size: isize) -> AddressType { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `HasherType` is never used [INFO] [stderr] --> src/machine_merkle_tree.rs:13:6 [INFO] [stderr] | [INFO] [stderr] 13 | type HasherType = sha3::Keccak256; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `ProofType` is never used [INFO] [stderr] --> src/machine_merkle_tree.rs:14:6 [INFO] [stderr] | [INFO] [stderr] 14 | type ProofType = MerkleTreeProof; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `LOG2_ROOT_SIZE` is never used [INFO] [stderr] --> src/machine_merkle_tree.rs:17:7 [INFO] [stderr] | [INFO] [stderr] 17 | const LOG2_ROOT_SIZE: isize = 64; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `LOG2_WORD_SIZE` is never used [INFO] [stderr] --> src/machine_merkle_tree.rs:18:7 [INFO] [stderr] | [INFO] [stderr] 18 | const LOG2_WORD_SIZE: isize = 3; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `LOG2_PAGE_SIZE` is never used [INFO] [stderr] --> src/machine_merkle_tree.rs:19:7 [INFO] [stderr] | [INFO] [stderr] 19 | const LOG2_PAGE_SIZE: isize = 12; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `M_PAGE_INDEX_MASK` is never used [INFO] [stderr] --> src/machine_merkle_tree.rs:20:7 [INFO] [stderr] | [INFO] [stderr] 20 | const M_PAGE_INDEX_MASK: AddressType = ((!0u64) >> (64 - LOG2_ROOT_SIZE)) << LOG2_PAGE_SIZE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `M_PAGE_OFFSET_MASK` is never used [INFO] [stderr] --> src/machine_merkle_tree.rs:21:7 [INFO] [stderr] | [INFO] [stderr] 21 | const M_PAGE_OFFSET_MASK: AddressType = !M_PAGE_INDEX_MASK; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `m_page_node_map`, `m_root_storage`, `m_root`, `m_merkle_update_nonce`, and `m_merkle_update_fifo` are never read [INFO] [stderr] --> src/machine_merkle_tree.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 24 | pub struct MachineMerkleTree{ [INFO] [stderr] | ----------------- fields in this struct [INFO] [stderr] 25 | [INFO] [stderr] 26 | m_page_node_map: BTreeMap>, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 27 | pub m_root_storage: MRootStorage, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 32 | m_root: Option<*mut Box>, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 33 | [INFO] [stderr] 34 | m_merkle_update_nonce: u64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 35 | [INFO] [stderr] 36 | m_merkle_update_fifo: VecDeque<(isize, *mut Box)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `MachineMerkleTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `m_root_storage` and `m_storage_mem` are never read [INFO] [stderr] --> src/machine_merkle_tree.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 43 | pub struct MRootStorage { [INFO] [stderr] | ------------ fields in this struct [INFO] [stderr] 44 | pub m_root_storage: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 45 | m_storage_mem: usize, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `MRootStorage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: methods `destroy_merkle_tree`, `destroy_merkle_tree_node`, and `destroy_node` are never used [INFO] [stderr] --> src/machine_merkle_tree.rs:51:12 [INFO] [stderr] | [INFO] [stderr] 50 | impl MRootStorage { [INFO] [stderr] | ----------------- methods in this implementation [INFO] [stderr] 51 | pub fn destroy_merkle_tree(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 58 | fn destroy_merkle_tree_node(&self, node: Option<&*mut Box>, log2_size: isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 83 | fn destroy_node(&mut self, node: *mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `hash`, `parent`, `child`, and `mark` are never read [INFO] [stderr] --> src/machine_merkle_tree.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 99 | pub struct TreeNode{ [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] 100 | hash: HashType, [INFO] [stderr] | ^^^^ [INFO] [stderr] 101 | parent: Option<*mut Box>, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 102 | pub child: Option>>, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 103 | mark: u64, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TreeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/machine_merkle_tree.rs:109:8 [INFO] [stderr] | [INFO] [stderr] 107 | impl <'a> MachineMerkleTree { [INFO] [stderr] | --------------------------- associated items in this implementation [INFO] [stderr] 108 | [INFO] [stderr] 109 | fn pristine_hashes() -> PristineMerkleTree { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 115 | const fn get_log2_root_size() -> isize{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 119 | const fn get_log2_word_size() -> isize{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 123 | fn get_page_index(address: AddressType) -> AddressType { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 127 | const fn get_log2_page_size() -> isize{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 131 | fn get_page_node(&mut self, page_index: AddressType) -> Option<*mut Box> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 144 | fn get_offset_in_page(address: AddressType) -> AddressType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 148 | fn set_page_node_map(&mut self, page_index: AddressType, node: *mut Box) -> isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 153 | fn create_node(&mut self) -> Option<*mut Box>{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 164 | fn new_page_node(&mut self, page_index: AddressType) -> Option<*mut Box> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 210 | fn get_page_node_hash_start(&self, h: &mut HasherType, start: *mut u8, log2_size: isize, hash: &mut HashType) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 234 | pub fn get_page_node_hash(&self, h: &mut HasherType, page_data: *mut u8, hash: &mut HashType) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 244 | pub fn get_page_node_hash_address(&mut self, page_index: AddressType, hash: &mut HashType) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 257 | fn get_child_hash(&self, child_log2_size: isize, node: *mut Box, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 270 | fn update_inner_node_hash(&self, h: &mut HasherType, log2_size: isize, node: *mut Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 279 | fn dump_hash(hash: &HashType) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 287 | fn get_pristine_hash(log2_size: isize) -> HashType{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 291 | fn dump_merkle_tree(&self, node: Option<&*mut Box>, address: u64, log2_size: isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 312 | fn get_inside_page_sibling_hashes_h(&self, h: &mut HasherType, address: AddressType, log2_size: isize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 346 | fn get_inside_page_sibling_hashes(&self, address: AddressType, log2_size: isize, hash: &mut HashType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 353 | pub fn dump_merkle_tree_empty(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 357 | pub fn begin_update(&mut self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 362 | pub fn update_page_node_hash(&mut self, page_index: AddressType, hash: &HashType) -> bool{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 382 | pub fn end_update(&mut self, h: &mut HasherType) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 398 | pub fn machine_merkle_tree_initialization(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 415 | pub fn machine_merkle_tree(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 432 | pub fn get_root_hash(&self, hash: &mut HashType) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 438 | pub fn verify_tree(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 443 | fn verify_tree_with_arguments(&self, h: &mut HasherType, node: *mut Box, log2_size: isize) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 468 | fn get_proof(&self, target_address: AddressType, log2_target_size: isize, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `stringval` is never used [INFO] [stderr] --> src/merkle_tree_hash.rs:9:4 [INFO] [stderr] | [INFO] [stderr] 9 | fn stringval(pre: String, strl: String, val: &mut String) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `intval` is never used [INFO] [stderr] --> src/merkle_tree_hash.rs:18:4 [INFO] [stderr] | [INFO] [stderr] 18 | fn intval(pre: &String, strl: &mut String, val: &mut isize) -> bool{ [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `read_hash` is never used [INFO] [stderr] --> src/merkle_tree_hash.rs:36:4 [INFO] [stderr] | [INFO] [stderr] 36 | fn read_hash(f: File) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `help` is never used [INFO] [stderr] --> src/merkle_tree_hash.rs:103:4 [INFO] [stderr] | [INFO] [stderr] 103 | fn help(name: &mut str) { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `HasherType` is never used [INFO] [stderr] --> src/merkle_tree_proof.rs:6:6 [INFO] [stderr] | [INFO] [stderr] 6 | type HasherType = sha3::Keccak256; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/merkle_tree_proof.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 19 | impl MerkleTreeProof{ [INFO] [stderr] | -------------------- methods in this implementation [INFO] [stderr] 20 | [INFO] [stderr] 21 | pub fn merkle_tree_proof(&mut self, log2_root_size: isize, log2_target_size: isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 48 | pub fn set_target_address(&mut self, target_address: AddressType) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 56 | pub fn set_target_hash(&mut self, hash: &HashType) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 64 | pub fn set_root_hash(&mut self, hash: &HashType) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 72 | fn get_sibling_hash(&self, log2_size: isize) -> &HashType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 76 | pub fn set_sibling_hash(&mut self, hash: &HashType, log2_size: isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 81 | pub fn verify(&mut self, h: &mut HasherType) -> bool { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 85 | pub fn bubble_up(&self, h: &mut HasherType, new_target_hash: &HashType) -> HashType { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | pub fn bubble_up_self(&mut self, h: &mut HasherType) -> HashType { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 123 | fn slice(&mut self, h: &mut HasherType, new_log2_root_size: isize, [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 182 | fn log2_size_to_index(&self, log2_size: isize) -> isize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stderr] --> src/complete_merkle_tree.rs:109:27 [INFO] [stderr] | [INFO] [stderr] 109 | if address < level.clone().len() as u64{ [INFO] [stderr] | ^^^^^^^^ help: remove this redundant call [INFO] [stderr] | [INFO] [stderr] = note: the type `[Box>]` does not implement `Clone`, so calling `clone` on `&[Box>]` copies the reference, which does not do anything and can be removed [INFO] [stderr] = note: `#[warn(noop_method_call)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused borrow that must be used [INFO] [stderr] --> src/machine_merkle_tree.rs:375:13 [INFO] [stderr] | [INFO] [stderr] 375 | &self.m_merkle_update_fifo.push_back((MachineMerkleTree::get_log2_page_size() + 1, (*node.unwrap()).parent.unwrap())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 375 | let _ = &self.m_merkle_update_fifo.push_back((MachineMerkleTree::get_log2_page_size() + 1, (*node.unwrap()).parent.unwrap())); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `merkle-tree-hash` (bin "merkle-tree-hash" test) generated 65 warnings (run `cargo fix --bin "merkle-tree-hash" --tests` to apply 16 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/merkle_tree_hash-68a2a5881882270f) [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "3ed0f2484d09f173187b328a42f93e7355a6c51ed181bf04cdad42fb22fc18b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3ed0f2484d09f173187b328a42f93e7355a6c51ed181bf04cdad42fb22fc18b8", kill_on_drop: false }` [INFO] [stdout] 3ed0f2484d09f173187b328a42f93e7355a6c51ed181bf04cdad42fb22fc18b8