[INFO] fetching crate vpack 1.0.0-rc.1... [INFO] linting vpack-1.0.0-rc.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate vpack 1.0.0-rc.1 into /workspace/builds/worker-0-tc1/source [INFO] removed /workspace/builds/worker-0-tc1/source/rust-toolchain.toml [INFO] started tweaking crates.io crate vpack 1.0.0-rc.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate vpack 1.0.0-rc.1 [INFO] tweaked toml for crates.io crate vpack 1.0.0-rc.1 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate vpack 1.0.0-rc.1 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate vpack 1.0.0-rc.1 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 922f8f7a65d3386a247efe2f330075025526ab48708aa1a9ff9d5a12616c53b8 [INFO] running `Command { std: "docker" "start" "-a" "922f8f7a65d3386a247efe2f330075025526ab48708aa1a9ff9d5a12616c53b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "922f8f7a65d3386a247efe2f330075025526ab48708aa1a9ff9d5a12616c53b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "922f8f7a65d3386a247efe2f330075025526ab48708aa1a9ff9d5a12616c53b8", kill_on_drop: false }` [INFO] [stdout] 922f8f7a65d3386a247efe2f330075025526ab48708aa1a9ff9d5a12616c53b8 [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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1bcfef25a37d93899f5977b7a76be32a23ac71add3287a65b9a56e457c80e0ad [INFO] running `Command { std: "docker" "start" "-a" "1bcfef25a37d93899f5977b7a76be32a23ac71add3287a65b9a56e457c80e0ad", kill_on_drop: false }` [INFO] [stderr] Compiling bitcoin-io v0.1.4 [INFO] [stderr] Compiling bitcoin-internals v0.3.0 [INFO] [stderr] Compiling hex_lit v0.1.1 [INFO] [stderr] Compiling bitcoin v0.32.8 [INFO] [stderr] Checking hex-conservative v0.2.2 [INFO] [stderr] Compiling borsh v1.6.0 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling secp256k1-sys v0.10.1 [INFO] [stderr] Checking bech32 v0.11.1 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Checking bitcoin-units v0.1.2 [INFO] [stderr] Checking bitcoin_hashes v0.14.1 [INFO] [stderr] Checking base58ck v0.1.0 [INFO] [stderr] Compiling borsh-derive v1.6.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Checking secp256k1 v0.29.1 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking vpack v1.0.0-rc.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/consensus/ark_labs.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | /// Then computes Double-SHA256 hash to produce `VtxoId::Raw`. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 23 | /// Then computes Double-SHA256 hash to produce `VtxoId::Raw`. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/consensus/ark_labs.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | / let mut outputs = Vec::with_capacity(2); [INFO] [stdout] 120 | | [INFO] [stdout] 121 | | // Add user output [INFO] [stdout] 122 | | outputs.push(TxOutPreimage { [INFO] [stdout] ... | [INFO] [stdout] 130 | | script_pubkey: tree.fee_anchor_script.as_slice(), [INFO] [stdout] 131 | | }); [INFO] [stdout] | |___________^ help: consider using the `vec![]` macro: `let outputs = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/consensus/second_tech.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | / let mut outputs = Vec::with_capacity(2); [INFO] [stdout] 104 | | [INFO] [stdout] 105 | | // Output 0: Final leaf [INFO] [stdout] 106 | | outputs.push(TxOutPreimage { [INFO] [stdout] ... | [INFO] [stdout] 114 | | script_pubkey: tree.fee_anchor_script.as_slice(), [INFO] [stdout] 115 | | }); [INFO] [stdout] | |___________^ help: consider using the `vec![]` macro: `let outputs = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/export.rs:109:41 [INFO] [stdout] | [INFO] [stdout] 109 | let tree_arity = if tree_depth == 0 { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 110 | | core::cmp::max(2, tree_arity) [INFO] [stdout] 111 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/export.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 111 | } else { [INFO] [stdout] | ____________^ [INFO] [stdout] 112 | | core::cmp::max(2, tree_arity) [INFO] [stdout] 113 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/pack.rs:116:46 [INFO] [stdout] | [INFO] [stdout] 116 | for (_item_idx, item) in tree.path.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] = note: `#[warn(clippy::unused_enumerate_index)]` on by default [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 116 - for (_item_idx, item) in tree.path.iter().enumerate() { [INFO] [stdout] 116 + for item in tree.path.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/pack.rs:123:60 [INFO] [stdout] | [INFO] [stdout] 123 | for (_sibling_idx, sibling) in item.siblings.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 123 - for (_sibling_idx, sibling) in item.siblings.iter().enumerate() { [INFO] [stdout] 123 + for sibling in item.siblings.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/pack.rs:170:5 [INFO] [stdout] | [INFO] [stdout] 170 | /// This ensures perfect symmetry for SiblingNode::Full. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 170 | /// This ensures perfect symmetry for SiblingNode::Full. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/consensus/ark_labs.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | /// Then computes Double-SHA256 hash to produce `VtxoId::Raw`. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 23 | /// Then computes Double-SHA256 hash to produce `VtxoId::Raw`. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/consensus/ark_labs.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | / let mut outputs = Vec::with_capacity(2); [INFO] [stdout] 120 | | [INFO] [stdout] 121 | | // Add user output [INFO] [stdout] 122 | | outputs.push(TxOutPreimage { [INFO] [stdout] ... | [INFO] [stdout] 130 | | script_pubkey: tree.fee_anchor_script.as_slice(), [INFO] [stdout] 131 | | }); [INFO] [stdout] | |___________^ help: consider using the `vec![]` macro: `let outputs = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/consensus/ark_labs.rs:257:9 [INFO] [stdout] | [INFO] [stdout] 257 | / let mut outputs_pre = Vec::with_capacity(2); [INFO] [stdout] 258 | | outputs_pre.push(TxOutPreimage { [INFO] [stdout] 259 | | value: tree.leaf.amount, [INFO] [stdout] 260 | | script_pubkey: tree.leaf.script_pubkey.as_slice(), [INFO] [stdout] ... | [INFO] [stdout] 264 | | script_pubkey: tree.fee_anchor_script.as_slice(), [INFO] [stdout] 265 | | }); [INFO] [stdout] | |___________^ help: consider using the `vec![]` macro: `let outputs_pre = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/consensus/ark_labs.rs:490:9 [INFO] [stdout] | [INFO] [stdout] 490 | / match computed_id { [INFO] [stdout] 491 | | VtxoId::Raw(bytes) => { [INFO] [stdout] 492 | | assert!( [INFO] [stdout] 493 | | !bytes.iter().all(|&b| b == 0), [INFO] [stdout] ... | [INFO] [stdout] 497 | | _ => {} [INFO] [stdout] 498 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 490 ~ if let VtxoId::Raw(bytes) = computed_id { [INFO] [stdout] 491 + assert!( [INFO] [stdout] 492 + !bytes.iter().all(|&b| b == 0), [INFO] [stdout] 493 + "VTXO ID should not be all zeros" [INFO] [stdout] 494 + ); [INFO] [stdout] 495 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/consensus/second_tech.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | / let mut outputs = Vec::with_capacity(2); [INFO] [stdout] 104 | | [INFO] [stdout] 105 | | // Output 0: Final leaf [INFO] [stdout] 106 | | outputs.push(TxOutPreimage { [INFO] [stdout] ... | [INFO] [stdout] 114 | | script_pubkey: tree.fee_anchor_script.as_slice(), [INFO] [stdout] 115 | | }); [INFO] [stdout] | |___________^ help: consider using the `vec![]` macro: `let outputs = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/export.rs:109:41 [INFO] [stdout] | [INFO] [stdout] 109 | let tree_arity = if tree_depth == 0 { [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 110 | | core::cmp::max(2, tree_arity) [INFO] [stdout] 111 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/export.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 111 | } else { [INFO] [stdout] | ____________^ [INFO] [stdout] 112 | | core::cmp::max(2, tree_arity) [INFO] [stdout] 113 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/pack.rs:116:46 [INFO] [stdout] | [INFO] [stdout] 116 | for (_item_idx, item) in tree.path.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] = note: `#[warn(clippy::unused_enumerate_index)]` on by default [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 116 - for (_item_idx, item) in tree.path.iter().enumerate() { [INFO] [stdout] 116 + for item in tree.path.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/pack.rs:123:60 [INFO] [stdout] | [INFO] [stdout] 123 | for (_sibling_idx, sibling) in item.siblings.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 123 - for (_sibling_idx, sibling) in item.siblings.iter().enumerate() { [INFO] [stdout] 123 + for sibling in item.siblings.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/pack.rs:170:5 [INFO] [stdout] | [INFO] [stdout] 170 | /// This ensures perfect symmetry for SiblingNode::Full. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 170 | /// This ensures perfect symmetry for SiblingNode::Full. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> tests/common/logic_adapters.rs:57:18 [INFO] [stdout] | [INFO] [stdout] 57 | .map(|h| hex::decode(h)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `hex::decode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/forensic_verification.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | !(hash_v2 == EXPECTED_BRANCH_ID), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(hash_v2 != EXPECTED_BRANCH_ID)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/forensic_verification.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | !(hash_v2 == expected_oor_txid), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(hash_v2 != expected_oor_txid)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> tests/common/logic_adapters.rs:57:18 [INFO] [stdout] | [INFO] [stdout] 57 | .map(|h| hex::decode(h)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `hex::decode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.14s [INFO] running `Command { std: "docker" "inspect" "1bcfef25a37d93899f5977b7a76be32a23ac71add3287a65b9a56e457c80e0ad", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1bcfef25a37d93899f5977b7a76be32a23ac71add3287a65b9a56e457c80e0ad", kill_on_drop: false }` [INFO] [stdout] 1bcfef25a37d93899f5977b7a76be32a23ac71add3287a65b9a56e457c80e0ad