[INFO] updating cached repository AlexeyAkhunov/parse_bitcoin [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/AlexeyAkhunov/parse_bitcoin [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/AlexeyAkhunov/parse_bitcoin" "work/ex/clippy-test-run/sources/stable/gh/AlexeyAkhunov/parse_bitcoin"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/AlexeyAkhunov/parse_bitcoin'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/AlexeyAkhunov/parse_bitcoin" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/AlexeyAkhunov/parse_bitcoin"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/AlexeyAkhunov/parse_bitcoin'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 9a89a0985e773f9f7e58d1efda42d292e6404ec6 [INFO] sha for GitHub repo AlexeyAkhunov/parse_bitcoin: 9a89a0985e773f9f7e58d1efda42d292e6404ec6 [INFO] validating manifest of AlexeyAkhunov/parse_bitcoin on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of AlexeyAkhunov/parse_bitcoin on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing AlexeyAkhunov/parse_bitcoin [INFO] finished frobbing AlexeyAkhunov/parse_bitcoin [INFO] frobbed toml for AlexeyAkhunov/parse_bitcoin written to work/ex/clippy-test-run/sources/stable/gh/AlexeyAkhunov/parse_bitcoin/Cargo.toml [INFO] started frobbing AlexeyAkhunov/parse_bitcoin [INFO] finished frobbing AlexeyAkhunov/parse_bitcoin [INFO] frobbed toml for AlexeyAkhunov/parse_bitcoin written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/AlexeyAkhunov/parse_bitcoin/Cargo.toml [INFO] crate AlexeyAkhunov/parse_bitcoin has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting AlexeyAkhunov/parse_bitcoin against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/AlexeyAkhunov/parse_bitcoin:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] c2dacb9c91f8fe7f1c65972796522bfaccd36580155811a0724e9f36f68dc05f [INFO] running `"docker" "start" "-a" "c2dacb9c91f8fe7f1c65972796522bfaccd36580155811a0724e9f36f68dc05f"` [INFO] [stderr] Checking num-bigint v0.1.36 [INFO] [stderr] Checking bloomfilter v0.0.10 [INFO] [stderr] Checking num-rational v0.1.36 [INFO] [stderr] Checking num v0.1.37 [INFO] [stderr] Checking rust-base58 v0.0.4 [INFO] [stderr] Checking parse_bitcoin v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:178:66 [INFO] [stderr] | [INFO] [stderr] 178 | inputs.push(Some(TxInput{time: time, script: cloned_script_sig})); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:963:74 [INFO] [stderr] | [INFO] [stderr] 963 | last_used.insert(addr_str, TimeValue{time: time, value: value}); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:963:86 [INFO] [stderr] | [INFO] [stderr] 963 | last_used.insert(addr_str, TimeValue{time: time, value: value}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:980:66 [INFO] [stderr] | [INFO] [stderr] 980 | last_used.insert(addr_str, TimeValue{time:time, value:value}); [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:980:77 [INFO] [stderr] | [INFO] [stderr] 980 | last_used.insert(addr_str, TimeValue{time:time, value:value}); [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:178:66 [INFO] [stderr] | [INFO] [stderr] 178 | inputs.push(Some(TxInput{time: time, script: cloned_script_sig})); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:963:74 [INFO] [stderr] | [INFO] [stderr] 963 | last_used.insert(addr_str, TimeValue{time: time, value: value}); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:963:86 [INFO] [stderr] | [INFO] [stderr] 963 | last_used.insert(addr_str, TimeValue{time: time, value: value}); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:980:66 [INFO] [stderr] | [INFO] [stderr] 980 | last_used.insert(addr_str, TimeValue{time:time, value:value}); [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:980:77 [INFO] [stderr] | [INFO] [stderr] 980 | last_used.insert(addr_str, TimeValue{time:time, value:value}); [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::Metadata` [INFO] [stderr] --> src/main.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::Metadata; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `SeekFrom`, `Seek` [INFO] [stderr] --> src/main.rs:6:32 [INFO] [stderr] | [INFO] [stderr] 6 | use std::io::{Read, BufReader, Seek, SeekFrom}; [INFO] [stderr] | ^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `format` [INFO] [stderr] --> src/main.rs:8:23 [INFO] [stderr] | [INFO] [stderr] 8 | use std::fmt::{Write, format}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::PartialEq` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::cmp::PartialEq; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FromBase58` [INFO] [stderr] --> src/main.rs:16:29 [INFO] [stderr] | [INFO] [stderr] 16 | use rust_base58::{ToBase58, FromBase58}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `bloomfilter::Bloom` [INFO] [stderr] --> src/main.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | use bloomfilter::Bloom; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:56:39 [INFO] [stderr] | [INFO] [stderr] 56 | if block_number > 1000000 { [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:125:28 [INFO] [stderr] | [INFO] [stderr] 125 | assert_eq!(3652501241, magic); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `3_652_501_241` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:162:21 [INFO] [stderr] | [INFO] [stderr] 162 | / if !is_coinbase { [INFO] [stderr] 163 | | if (block[prevout_hash_pos] & 0x3) == prefix { [INFO] [stderr] 164 | | let id = copy_id(&block[prevout_hash_pos..prevout_hash_pos+32]); [INFO] [stderr] 165 | | let remove_from_map = match state.out_map.get_mut(&id) { [INFO] [stderr] ... | [INFO] [stderr] 201 | | } [INFO] [stderr] 202 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 162 | if !is_coinbase && (block[prevout_hash_pos] & 0x3) == prefix { [INFO] [stderr] 163 | let id = copy_id(&block[prevout_hash_pos..prevout_hash_pos+32]); [INFO] [stderr] 164 | let remove_from_map = match state.out_map.get_mut(&id) { [INFO] [stderr] 165 | None => { [INFO] [stderr] 166 | let inputs: &mut Vec>; [INFO] [stderr] 167 | if !state.in_map.contains_key(&id) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Op` [INFO] [stderr] --> src/main.rs:258:1 [INFO] [stderr] | [INFO] [stderr] 258 | / enum Opcode { [INFO] [stderr] 259 | | Op0 = 0x00, [INFO] [stderr] 260 | | OpPushdata1 = 0x4C, OpPushdata2, OpPushdata4, [INFO] [stderr] 261 | | Op1Negate, [INFO] [stderr] ... | [INFO] [stderr] 277 | | OpInvalidopcode = 0xFF, [INFO] [stderr] 278 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:938:5 [INFO] [stderr] | [INFO] [stderr] 938 | return OutputType::Unclassified; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `OutputType::Unclassified` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:361:21 [INFO] [stderr] | [INFO] [stderr] 361 | / if decoded_output.len() > 2 && decoded_output[2].0 == 20u8 { [INFO] [stderr] 362 | | if decoded_output.len() > 3 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 363 | | if decoded_output.len() > 4 { [INFO] [stderr] 364 | | let op4 = decoded_output[4].0; [INFO] [stderr] ... | [INFO] [stderr] 379 | | } [INFO] [stderr] 380 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 361 | if decoded_output.len() > 2 && decoded_output[2].0 == 20u8 && decoded_output.len() > 3 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 362 | if decoded_output.len() > 4 { [INFO] [stderr] 363 | let op4 = decoded_output[4].0; [INFO] [stderr] 364 | if op4 == Opcode::OpChecksig as u8 { [INFO] [stderr] 365 | if decoded_output.len() == 5 { [INFO] [stderr] 366 | return OutputType::PayToAddress; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:362:25 [INFO] [stderr] | [INFO] [stderr] 362 | / if decoded_output.len() > 3 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 363 | | if decoded_output.len() > 4 { [INFO] [stderr] 364 | | let op4 = decoded_output[4].0; [INFO] [stderr] 365 | | if op4 == Opcode::OpChecksig as u8 { [INFO] [stderr] ... | [INFO] [stderr] 378 | | } [INFO] [stderr] 379 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 362 | if decoded_output.len() > 3 && decoded_output[3].0 == Opcode::OpEqualverify as u8 && decoded_output.len() > 4 { [INFO] [stderr] 363 | let op4 = decoded_output[4].0; [INFO] [stderr] 364 | if op4 == Opcode::OpChecksig as u8 { [INFO] [stderr] 365 | if decoded_output.len() == 5 { [INFO] [stderr] 366 | return OutputType::PayToAddress; [INFO] [stderr] 367 | } else if decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpNop as u8 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:390:21 [INFO] [stderr] | [INFO] [stderr] 390 | / if decoded_output.len() > 2 && decoded_output[2].0 == 32u8 { [INFO] [stderr] 391 | | if decoded_output.len() > 3 { [INFO] [stderr] 392 | | let op3 = decoded_output[3].0; [INFO] [stderr] 393 | | if op3 == Opcode::OpEqual as u8 { [INFO] [stderr] ... | [INFO] [stderr] 406 | | } [INFO] [stderr] 407 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 390 | if decoded_output.len() > 2 && decoded_output[2].0 == 32u8 && decoded_output.len() > 3 { [INFO] [stderr] 391 | let op3 = decoded_output[3].0; [INFO] [stderr] 392 | if op3 == Opcode::OpEqual as u8 { [INFO] [stderr] 393 | if decoded_output.len() == 11 && [INFO] [stderr] 394 | decoded_output[4].0 == Opcode::OpNotif as u8 && [INFO] [stderr] 395 | decoded_output[5].0 == Opcode::OpHash256 as u8 && decoded_output[6].0 == 32u8 && decoded_output[7].0 == Opcode::OpEqual as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:400:36 [INFO] [stderr] | [INFO] [stderr] 400 | } else if op3 == Opcode::OpEqualverify as u8 { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 401 | | if decoded_output.len() == 5 && [INFO] [stderr] 402 | | decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 403 | | return OutputType::PayToAddressH256; [INFO] [stderr] 404 | | } [INFO] [stderr] 405 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 400 | } else if op3 == Opcode::OpEqualverify as u8 && decoded_output.len() == 5 && [INFO] [stderr] 401 | decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 402 | return OutputType::PayToAddressH256; [INFO] [stderr] 403 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:408:24 [INFO] [stderr] | [INFO] [stderr] 408 | } else if op1 == Opcode::OpDup as u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 409 | | if decoded_output.len() == 3 && decoded_output[2].0 == Opcode::OpDup as u8 { [INFO] [stderr] 410 | | return OutputType::OpDup; [INFO] [stderr] 411 | | } [INFO] [stderr] 412 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 408 | } else if op1 == Opcode::OpDup as u8 && decoded_output.len() == 3 && decoded_output[2].0 == Opcode::OpDup as u8 { [INFO] [stderr] 409 | return OutputType::OpDup; [INFO] [stderr] 410 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:422:21 [INFO] [stderr] | [INFO] [stderr] 422 | / if decoded_output.len() > 2 && decoded_output[2].0 == Opcode::Op1Add as u8 { [INFO] [stderr] 423 | | if decoded_output.len() == 4 && decoded_output[3].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 424 | | return OutputType::Strange6; [INFO] [stderr] 425 | | } [INFO] [stderr] 426 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 422 | if decoded_output.len() > 2 && decoded_output[2].0 == Opcode::Op1Add as u8 && decoded_output.len() == 4 && decoded_output[3].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 423 | return OutputType::Strange6; [INFO] [stderr] 424 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:430:28 [INFO] [stderr] | [INFO] [stderr] 430 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 431 | | if decoded_output[2].0 == Opcode::OpSwap as u8 { [INFO] [stderr] 432 | | if decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) { [INFO] [stderr] 433 | | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] ... | [INFO] [stderr] 462 | | } [INFO] [stderr] 463 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 430 | } else if decoded_output[2].0 == Opcode::OpSwap as u8 { [INFO] [stderr] 431 | if decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) { [INFO] [stderr] 432 | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 433 | if decoded_output.len() > 5 { [INFO] [stderr] 434 | let op5 = decoded_output[5].0; [INFO] [stderr] 435 | if op5 == Opcode::OpSwap as u8 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:431:25 [INFO] [stderr] | [INFO] [stderr] 431 | / if decoded_output[2].0 == Opcode::OpSwap as u8 { [INFO] [stderr] 432 | | if decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) { [INFO] [stderr] 433 | | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 434 | | if decoded_output.len() > 5 { [INFO] [stderr] ... | [INFO] [stderr] 461 | | } [INFO] [stderr] 462 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 431 | if decoded_output[2].0 == Opcode::OpSwap as u8 && decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) { [INFO] [stderr] 432 | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 433 | if decoded_output.len() > 5 { [INFO] [stderr] 434 | let op5 = decoded_output[5].0; [INFO] [stderr] 435 | if op5 == Opcode::OpSwap as u8 { [INFO] [stderr] 436 | if decoded_output.len() == 47 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:432:29 [INFO] [stderr] | [INFO] [stderr] 432 | / if decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) { [INFO] [stderr] 433 | | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 434 | | if decoded_output.len() > 5 { [INFO] [stderr] 435 | | let op5 = decoded_output[5].0; [INFO] [stderr] ... | [INFO] [stderr] 460 | | } [INFO] [stderr] 461 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 432 | if decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) && decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 433 | if decoded_output.len() > 5 { [INFO] [stderr] 434 | let op5 = decoded_output[5].0; [INFO] [stderr] 435 | if op5 == Opcode::OpSwap as u8 { [INFO] [stderr] 436 | if decoded_output.len() == 47 && [INFO] [stderr] 437 | decoded_output[6].0 == Opcode::Op3 as u8 && decoded_output[7].0 == Opcode::OpPick as u8 && decoded_output[8].0 == Opcode::OpSha256 as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:433:33 [INFO] [stderr] | [INFO] [stderr] 433 | / if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 434 | | if decoded_output.len() > 5 { [INFO] [stderr] 435 | | let op5 = decoded_output[5].0; [INFO] [stderr] 436 | | if op5 == Opcode::OpSwap as u8 { [INFO] [stderr] ... | [INFO] [stderr] 459 | | } [INFO] [stderr] 460 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 433 | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 && decoded_output.len() > 5 { [INFO] [stderr] 434 | let op5 = decoded_output[5].0; [INFO] [stderr] 435 | if op5 == Opcode::OpSwap as u8 { [INFO] [stderr] 436 | if decoded_output.len() == 47 && [INFO] [stderr] 437 | decoded_output[6].0 == Opcode::Op3 as u8 && decoded_output[7].0 == Opcode::OpPick as u8 && decoded_output[8].0 == Opcode::OpSha256 as u8 && [INFO] [stderr] 438 | decoded_output[9].0 == 32u8 && decoded_output[10].0 == Opcode::OpEqual as u8 && decoded_output[11].0 == Opcode::Op3 as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:454:48 [INFO] [stderr] | [INFO] [stderr] 454 | } else if op5 == Opcode::OpBoolor as u8 { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 455 | | if decoded_output.len() == 6 { [INFO] [stderr] 456 | | return OutputType::Strange37; [INFO] [stderr] 457 | | } [INFO] [stderr] 458 | | } [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 454 | } else if op5 == Opcode::OpBoolor as u8 && decoded_output.len() == 6 { [INFO] [stderr] 455 | return OutputType::Strange37; [INFO] [stderr] 456 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:467:13 [INFO] [stderr] | [INFO] [stderr] 467 | / if decoded_output.len() > 1 && decoded_output[1].0 == Opcode::OpNop2 as u8 { [INFO] [stderr] 468 | | if decoded_output.len() == 3 && decoded_output[2].0 == Opcode::OpDrop as u8 { [INFO] [stderr] 469 | | return OutputType::Strange1; [INFO] [stderr] 470 | | } [INFO] [stderr] 471 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 467 | if decoded_output.len() > 1 && decoded_output[1].0 == Opcode::OpNop2 as u8 && decoded_output.len() == 3 && decoded_output[2].0 == Opcode::OpDrop as u8 { [INFO] [stderr] 468 | return OutputType::Strange1; [INFO] [stderr] 469 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:481:20 [INFO] [stderr] | [INFO] [stderr] 481 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 482 | | if decoded_output.len() > 2 && decoded_output[1].0 == Opcode::OpDrop as u8 { [INFO] [stderr] 483 | | if decoded_output.len() == 3 { [INFO] [stderr] 484 | | if decoded_output[2].0 == Opcode::Op1 as u8 { [INFO] [stderr] ... | [INFO] [stderr] 494 | | } [INFO] [stderr] 495 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 481 | } else if decoded_output.len() > 2 && decoded_output[1].0 == Opcode::OpDrop as u8 { [INFO] [stderr] 482 | if decoded_output.len() == 3 { [INFO] [stderr] 483 | if decoded_output[2].0 == Opcode::Op1 as u8 { [INFO] [stderr] 484 | return OutputType::Strange26; [INFO] [stderr] 485 | } [INFO] [stderr] 486 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:487:28 [INFO] [stderr] | [INFO] [stderr] 487 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 488 | | if decoded_output.len() == 7 && [INFO] [stderr] 489 | | decoded_output[2].0 == Opcode::OpDup as u8 && decoded_output[3].0 == Opcode::OpHash160 as u8 && decoded_output[4].0 == 20u8 && [INFO] [stderr] 490 | | decoded_output[5].0 == Opcode::OpEqualverify as u8 && decoded_output[6].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 491 | | return OutputType::Strange8; [INFO] [stderr] 492 | | } [INFO] [stderr] 493 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 487 | } else if decoded_output.len() == 7 && [INFO] [stderr] 488 | decoded_output[2].0 == Opcode::OpDup as u8 && decoded_output[3].0 == Opcode::OpHash160 as u8 && decoded_output[4].0 == 20u8 && [INFO] [stderr] 489 | decoded_output[5].0 == Opcode::OpEqualverify as u8 && decoded_output[6].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 490 | return OutputType::Strange8; [INFO] [stderr] 491 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:506:37 [INFO] [stderr] | [INFO] [stderr] 506 | / if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::Op3 as u8 { [INFO] [stderr] 507 | | if decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 508 | | return OutputType::Multisig2of3; [INFO] [stderr] 509 | | } [INFO] [stderr] 510 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 506 | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::Op3 as u8 && decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 507 | return OutputType::Multisig2of3; [INFO] [stderr] 508 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:511:40 [INFO] [stderr] | [INFO] [stderr] 511 | } else if op3 == Opcode::Op2 as u8 { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 512 | | if decoded_output.len() == 5 && decoded_output[4].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 513 | | return OutputType::Multisig2of2; [INFO] [stderr] 514 | | } [INFO] [stderr] 515 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 511 | } else if op3 == Opcode::Op2 as u8 && decoded_output.len() == 5 && decoded_output[4].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 512 | return OutputType::Multisig2of2; [INFO] [stderr] 513 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:517:32 [INFO] [stderr] | [INFO] [stderr] 517 | } else if op2 == Opcode::Op1 as u8 { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 518 | | if decoded_output.len() == 19 && [INFO] [stderr] 519 | | decoded_output[3].0 == Opcode::Op2 as u8 && decoded_output[4].0 == Opcode::Op3 as u8 && decoded_output[5].0 == Opcode::Op4 as u8 && [INFO] [stderr] 520 | | decoded_output[6].0 == Opcode::Op5 as u8 && decoded_output[7].0 == Opcode::Op6 as u8 && decoded_output[8].0 == Opcode::Op7 as u8 && [INFO] [stderr] ... | [INFO] [stderr] 526 | | } [INFO] [stderr] 527 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 517 | } else if op2 == Opcode::Op1 as u8 && decoded_output.len() == 19 && [INFO] [stderr] 518 | decoded_output[3].0 == Opcode::Op2 as u8 && decoded_output[4].0 == Opcode::Op3 as u8 && decoded_output[5].0 == Opcode::Op4 as u8 && [INFO] [stderr] 519 | decoded_output[6].0 == Opcode::Op5 as u8 && decoded_output[7].0 == Opcode::Op6 as u8 && decoded_output[8].0 == Opcode::Op7 as u8 && [INFO] [stderr] 520 | decoded_output[9].0 == Opcode::Op8 as u8 && decoded_output[10].0 == Opcode::Op9 as u8 && decoded_output[11].0 == Opcode::Op10 as u8 && [INFO] [stderr] 521 | decoded_output[12].0 == Opcode::Op11 as u8 && decoded_output[13].0 == Opcode::Op12 as u8 && decoded_output[14].0 == Opcode::Op13 as u8 && [INFO] [stderr] 522 | decoded_output[15].0 == Opcode::Op14 as u8 && decoded_output[16].0 == 33u8 as u8 && decoded_output[17].0 == Opcode::Op16 as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:529:24 [INFO] [stderr] | [INFO] [stderr] 529 | } else if op1 == Opcode::Op2 as u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 530 | | if decoded_output.len() == 2 { [INFO] [stderr] 531 | | return OutputType::Strange40; [INFO] [stderr] 532 | | } [INFO] [stderr] 533 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 529 | } else if op1 == Opcode::Op2 as u8 && decoded_output.len() == 2 { [INFO] [stderr] 530 | return OutputType::Strange40; [INFO] [stderr] 531 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:536:13 [INFO] [stderr] | [INFO] [stderr] 536 | / if decoded_output.len() > 1 && decoded_output[1].0 == Opcode::Op3 as u8 { [INFO] [stderr] 537 | | if decoded_output.len() ==3 && decoded_output[2].0 == Opcode::OpEqual as u8 { [INFO] [stderr] 538 | | return OutputType::Strange2; [INFO] [stderr] 539 | | } [INFO] [stderr] 540 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 536 | if decoded_output.len() > 1 && decoded_output[1].0 == Opcode::Op3 as u8 && decoded_output.len() ==3 && decoded_output[2].0 == Opcode::OpEqual as u8 { [INFO] [stderr] 537 | return OutputType::Strange2; [INFO] [stderr] 538 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:542:13 [INFO] [stderr] | [INFO] [stderr] 542 | / if decoded_output.len() > 1 && decoded_output[1].0 == 20u8 { [INFO] [stderr] 543 | | if decoded_output.len() > 2 { [INFO] [stderr] 544 | | let op2 = decoded_output[2].0; [INFO] [stderr] 545 | | if op2 == Opcode::OpEqual as u8 { [INFO] [stderr] ... | [INFO] [stderr] 558 | | } [INFO] [stderr] 559 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 542 | if decoded_output.len() > 1 && decoded_output[1].0 == 20u8 && decoded_output.len() > 2 { [INFO] [stderr] 543 | let op2 = decoded_output[2].0; [INFO] [stderr] 544 | if op2 == Opcode::OpEqual as u8 { [INFO] [stderr] 545 | if decoded_output.len() == 3 { [INFO] [stderr] 546 | return OutputType::PayToScriptHash; [INFO] [stderr] 547 | } else if decoded_output.len() == 7 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:553:28 [INFO] [stderr] | [INFO] [stderr] 553 | } else if op2 == Opcode::OpEqualverify as u8 { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 554 | | if decoded_output.len() == 5 && decoded_output[3].0 == 33u8 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 555 | | return OutputType::Strange29; [INFO] [stderr] 556 | | } [INFO] [stderr] 557 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 553 | } else if op2 == Opcode::OpEqualverify as u8 && decoded_output.len() == 5 && decoded_output[3].0 == 33u8 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 554 | return OutputType::Strange29; [INFO] [stderr] 555 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:567:17 [INFO] [stderr] | [INFO] [stderr] 567 | / if op1 == 33u8 || op1 == 65u8 || op1 == 76u8 || op1 == 52u8 { [INFO] [stderr] 568 | | if decoded_output.len() > 2 { [INFO] [stderr] 569 | | let op2 = decoded_output[2].0; [INFO] [stderr] 570 | | if op2 == 33u8 || op2 == 65u8 || op2 == 76u8 || op2 == 39u8 { [INFO] [stderr] ... | [INFO] [stderr] 600 | | } [INFO] [stderr] 601 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 567 | if (op1 == 33u8 || op1 == 65u8 || op1 == 76u8 || op1 == 52u8) && decoded_output.len() > 2 { [INFO] [stderr] 568 | let op2 = decoded_output[2].0; [INFO] [stderr] 569 | if op2 == 33u8 || op2 == 65u8 || op2 == 76u8 || op2 == 39u8 { [INFO] [stderr] 570 | if decoded_output.len() > 3 { [INFO] [stderr] 571 | let op3 = decoded_output[3].0; [INFO] [stderr] 572 | if op3 == Opcode::Op2 as u8 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:577:40 [INFO] [stderr] | [INFO] [stderr] 577 | } else if op3 == 33u8 || op3 == 65u8 || op3 == 66u8 { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 578 | | if decoded_output.len() > 4 { [INFO] [stderr] 579 | | let op4 = decoded_output[4].0; [INFO] [stderr] 580 | | if op4 == Opcode::Op3 as u8 { [INFO] [stderr] ... | [INFO] [stderr] 592 | | } [INFO] [stderr] 593 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 577 | } else if (op3 == 33u8 || op3 == 65u8 || op3 == 66u8) && decoded_output.len() > 4 { [INFO] [stderr] 578 | let op4 = decoded_output[4].0; [INFO] [stderr] 579 | if op4 == Opcode::Op3 as u8 { [INFO] [stderr] 580 | if decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 581 | return OutputType::Multisig1of3; [INFO] [stderr] 582 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:584:48 [INFO] [stderr] | [INFO] [stderr] 584 | } else if op4 == 33u8 { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 585 | | if decoded_output.len() == 12 && [INFO] [stderr] 586 | | decoded_output[5].0 == 33u8 && decoded_output[6].0 == 33u8 && decoded_output[7].0 == 33u8 && [INFO] [stderr] 587 | | decoded_output[8].0 == 33u8 && decoded_output[9].0 == 33u8 && decoded_output[10].0 == Opcode::Op9 as u8 && [INFO] [stderr] ... | [INFO] [stderr] 590 | | } [INFO] [stderr] 591 | | } [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 584 | } else if op4 == 33u8 && decoded_output.len() == 12 && [INFO] [stderr] 585 | decoded_output[5].0 == 33u8 && decoded_output[6].0 == 33u8 && decoded_output[7].0 == 33u8 && [INFO] [stderr] 586 | decoded_output[8].0 == 33u8 && decoded_output[9].0 == 33u8 && decoded_output[10].0 == Opcode::Op9 as u8 && [INFO] [stderr] 587 | decoded_output[11].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 588 | return OutputType::Multisig1of9; [INFO] [stderr] 589 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:595:32 [INFO] [stderr] | [INFO] [stderr] 595 | } else if op2 == Opcode::Op1 as u8 { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 596 | | if decoded_output.len() == 4 && decoded_output[3].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 597 | | return OutputType::Multisig1of1; [INFO] [stderr] 598 | | } [INFO] [stderr] 599 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 595 | } else if op2 == Opcode::Op1 as u8 && decoded_output.len() == 4 && decoded_output[3].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 596 | return OutputType::Multisig1of1; [INFO] [stderr] 597 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:607:21 [INFO] [stderr] | [INFO] [stderr] 607 | / if decoded_output.len() > 2 && (decoded_output[2].0 == 65u8 || decoded_output[2].0 == 33u8) { [INFO] [stderr] 608 | | if decoded_output.len() > 3 && (decoded_output[3].0 == 65u8 || decoded_output[3].0 == 33u8) { [INFO] [stderr] 609 | | if decoded_output.len() > 4 { [INFO] [stderr] 610 | | let op4 = decoded_output[4].0; [INFO] [stderr] ... | [INFO] [stderr] 622 | | } [INFO] [stderr] 623 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 607 | if decoded_output.len() > 2 && (decoded_output[2].0 == 65u8 || decoded_output[2].0 == 33u8) && decoded_output.len() > 3 && (decoded_output[3].0 == 65u8 || decoded_output[3].0 == 33u8) { [INFO] [stderr] 608 | if decoded_output.len() > 4 { [INFO] [stderr] 609 | let op4 = decoded_output[4].0; [INFO] [stderr] 610 | if op4 == Opcode::Op3 as u8 { [INFO] [stderr] 611 | if decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 612 | return OutputType::Multisig3of3; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:608:25 [INFO] [stderr] | [INFO] [stderr] 608 | / if decoded_output.len() > 3 && (decoded_output[3].0 == 65u8 || decoded_output[3].0 == 33u8) { [INFO] [stderr] 609 | | if decoded_output.len() > 4 { [INFO] [stderr] 610 | | let op4 = decoded_output[4].0; [INFO] [stderr] 611 | | if op4 == Opcode::Op3 as u8 { [INFO] [stderr] ... | [INFO] [stderr] 621 | | } [INFO] [stderr] 622 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 608 | if decoded_output.len() > 3 && (decoded_output[3].0 == 65u8 || decoded_output[3].0 == 33u8) && decoded_output.len() > 4 { [INFO] [stderr] 609 | let op4 = decoded_output[4].0; [INFO] [stderr] 610 | if op4 == Opcode::Op3 as u8 { [INFO] [stderr] 611 | if decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 612 | return OutputType::Multisig3of3; [INFO] [stderr] 613 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:615:40 [INFO] [stderr] | [INFO] [stderr] 615 | } else if op4 == 65u8 { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 616 | | if decoded_output.len() == 8 && [INFO] [stderr] 617 | | decoded_output[5].0 == 65u8 && decoded_output[6].0 == Opcode::Op5 as u8 && decoded_output[7].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 618 | | return OutputType::Multisig3of5; [INFO] [stderr] 619 | | } [INFO] [stderr] 620 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 615 | } else if op4 == 65u8 && decoded_output.len() == 8 && [INFO] [stderr] 616 | decoded_output[5].0 == 65u8 && decoded_output[6].0 == Opcode::Op5 as u8 && decoded_output[7].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 617 | return OutputType::Multisig3of5; [INFO] [stderr] 618 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:624:24 [INFO] [stderr] | [INFO] [stderr] 624 | } else if op1 == Opcode::OpDrop as u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 625 | | if decoded_output.len() == 4 && [INFO] [stderr] 626 | | decoded_output[2].0 == Opcode::OpDrop as u8 && decoded_output[3].0 == Opcode::Op1 as u8 { [INFO] [stderr] 627 | | return OutputType::Strange33; [INFO] [stderr] 628 | | } [INFO] [stderr] 629 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 624 | } else if op1 == Opcode::OpDrop as u8 && decoded_output.len() == 4 && [INFO] [stderr] 625 | decoded_output[2].0 == Opcode::OpDrop as u8 && decoded_output[3].0 == Opcode::Op1 as u8 { [INFO] [stderr] 626 | return OutputType::Strange33; [INFO] [stderr] 627 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:655:24 [INFO] [stderr] | [INFO] [stderr] 655 | } else if op1 == Opcode::OpHash160 as u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 656 | | if decoded_output.len() > 3 && decoded_output[2].0 == 20u8 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 657 | | if decoded_output.len() > 4 { [INFO] [stderr] 658 | | let op4 = decoded_output[4].0; [INFO] [stderr] ... | [INFO] [stderr] 674 | | } [INFO] [stderr] 675 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 655 | } else if op1 == Opcode::OpHash160 as u8 && decoded_output.len() > 3 && decoded_output[2].0 == 20u8 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 656 | if decoded_output.len() > 4 { [INFO] [stderr] 657 | let op4 = decoded_output[4].0; [INFO] [stderr] 658 | if op4 == 33u8 { [INFO] [stderr] 659 | if decoded_output.len() == 10 && [INFO] [stderr] 660 | decoded_output[5].0 == Opcode::OpChecksig as u8 && decoded_output[6].0 == Opcode::OpElse as u8 && decoded_output[7].0 == 33u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:656:21 [INFO] [stderr] | [INFO] [stderr] 656 | / if decoded_output.len() > 3 && decoded_output[2].0 == 20u8 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 657 | | if decoded_output.len() > 4 { [INFO] [stderr] 658 | | let op4 = decoded_output[4].0; [INFO] [stderr] 659 | | if op4 == 33u8 { [INFO] [stderr] ... | [INFO] [stderr] 673 | | } [INFO] [stderr] 674 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 656 | if decoded_output.len() > 3 && decoded_output[2].0 == 20u8 && decoded_output[3].0 == Opcode::OpEqualverify as u8 && decoded_output.len() > 4 { [INFO] [stderr] 657 | let op4 = decoded_output[4].0; [INFO] [stderr] 658 | if op4 == 33u8 { [INFO] [stderr] 659 | if decoded_output.len() == 10 && [INFO] [stderr] 660 | decoded_output[5].0 == Opcode::OpChecksig as u8 && decoded_output[6].0 == Opcode::OpElse as u8 && decoded_output[7].0 == 33u8 && [INFO] [stderr] 661 | decoded_output[8].0 == Opcode::OpChecksig as u8 && decoded_output[9].0 == Opcode::OpEndif as u8 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:665:36 [INFO] [stderr] | [INFO] [stderr] 665 | } else if op4 == Opcode::OpHash160 as u8 { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 666 | | if decoded_output.len() == 14 && [INFO] [stderr] 667 | | decoded_output[5].0 == 20u8 && decoded_output[6].0 == Opcode::OpEqualverify as u8 && decoded_output[7].0 == Opcode::OpHash160 as u8 && [INFO] [stderr] 668 | | decoded_output[8].0 == 20u8 && decoded_output[9].0 == Opcode::OpEqual as u8 && decoded_output[10].0 == Opcode::OpElse as u8 && [INFO] [stderr] ... | [INFO] [stderr] 671 | | } [INFO] [stderr] 672 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 665 | } else if op4 == Opcode::OpHash160 as u8 && decoded_output.len() == 14 && [INFO] [stderr] 666 | decoded_output[5].0 == 20u8 && decoded_output[6].0 == Opcode::OpEqualverify as u8 && decoded_output[7].0 == Opcode::OpHash160 as u8 && [INFO] [stderr] 667 | decoded_output[8].0 == 20u8 && decoded_output[9].0 == Opcode::OpEqual as u8 && decoded_output[10].0 == Opcode::OpElse as u8 && [INFO] [stderr] 668 | decoded_output[11].0 == 65u8 && decoded_output[12].0 == Opcode::OpChecksig as u8 && decoded_output[13].0 == Opcode::OpEndif as u8 { [INFO] [stderr] 669 | return OutputType::Strange42; [INFO] [stderr] 670 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:757:24 [INFO] [stderr] | [INFO] [stderr] 757 | } else if op1 == Opcode::Op4 as u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 758 | | if decoded_output.len() == 72 && [INFO] [stderr] 759 | | decoded_output[2].0 == Opcode::OpSub as u8 && decoded_output[3].0 == Opcode::Op6 as u8 && decoded_output[4].0 == Opcode::OpAdd as u8 && [INFO] [stderr] 760 | | decoded_output[5].0 == Opcode::OpEqual as u8 && decoded_output[6].0 == Opcode::OpDup as u8 && decoded_output[7].0 == Opcode::OpNotif as u8 && [INFO] [stderr] ... | [INFO] [stderr] 784 | | } [INFO] [stderr] 785 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 757 | } else if op1 == Opcode::Op4 as u8 && decoded_output.len() == 72 && [INFO] [stderr] 758 | decoded_output[2].0 == Opcode::OpSub as u8 && decoded_output[3].0 == Opcode::Op6 as u8 && decoded_output[4].0 == Opcode::OpAdd as u8 && [INFO] [stderr] 759 | decoded_output[5].0 == Opcode::OpEqual as u8 && decoded_output[6].0 == Opcode::OpDup as u8 && decoded_output[7].0 == Opcode::OpNotif as u8 && [INFO] [stderr] 760 | decoded_output[8].0 == Opcode::OpReturn as u8 && decoded_output[9].0 == Opcode::OpEndif as u8 && decoded_output[10].0 == Opcode::OpNegate as u8 && [INFO] [stderr] 761 | decoded_output[11].0 == Opcode::Op2 as u8 && decoded_output[12].0 == Opcode::OpAdd as u8 && decoded_output[13].0 == Opcode::Op1Sub as u8 && [INFO] [stderr] 762 | decoded_output[14].0 == Opcode::OpEqual as u8 && decoded_output[15].0 == Opcode::OpDup as u8 && decoded_output[16].0 == Opcode::OpNotif as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:824:24 [INFO] [stderr] | [INFO] [stderr] 824 | } else if op1 == 1u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 825 | | if decoded_output.len() > 3 && decoded_output[2].0 == 1u8 && decoded_output[3].0 == Opcode::OpWithin as u8 { [INFO] [stderr] 826 | | if decoded_output.len() > 4 { [INFO] [stderr] 827 | | let op4 = decoded_output[4].0; [INFO] [stderr] ... | [INFO] [stderr] 844 | | } [INFO] [stderr] 845 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 824 | } else if op1 == 1u8 && decoded_output.len() > 3 && decoded_output[2].0 == 1u8 && decoded_output[3].0 == Opcode::OpWithin as u8 { [INFO] [stderr] 825 | if decoded_output.len() > 4 { [INFO] [stderr] 826 | let op4 = decoded_output[4].0; [INFO] [stderr] 827 | if op4 == Opcode::OpVerify as u8 { [INFO] [stderr] 828 | if decoded_output.len() == 10 && [INFO] [stderr] 829 | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == 32u8 && decoded_output[7].0 == Opcode::OpEqualverify as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:825:21 [INFO] [stderr] | [INFO] [stderr] 825 | / if decoded_output.len() > 3 && decoded_output[2].0 == 1u8 && decoded_output[3].0 == Opcode::OpWithin as u8 { [INFO] [stderr] 826 | | if decoded_output.len() > 4 { [INFO] [stderr] 827 | | let op4 = decoded_output[4].0; [INFO] [stderr] 828 | | if op4 == Opcode::OpVerify as u8 { [INFO] [stderr] ... | [INFO] [stderr] 843 | | } [INFO] [stderr] 844 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 825 | if decoded_output.len() > 3 && decoded_output[2].0 == 1u8 && decoded_output[3].0 == Opcode::OpWithin as u8 && decoded_output.len() > 4 { [INFO] [stderr] 826 | let op4 = decoded_output[4].0; [INFO] [stderr] 827 | if op4 == Opcode::OpVerify as u8 { [INFO] [stderr] 828 | if decoded_output.len() == 10 && [INFO] [stderr] 829 | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == 32u8 && decoded_output[7].0 == Opcode::OpEqualverify as u8 && [INFO] [stderr] 830 | decoded_output[8].0 == 33u8 && decoded_output[9].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:834:36 [INFO] [stderr] | [INFO] [stderr] 834 | } else if op4 == Opcode::OpSwap as u8 { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 835 | | if decoded_output.len() == 16 && [INFO] [stderr] 836 | | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == 32u8 && decoded_output[7].0 == Opcode::OpEqual as u8 && [INFO] [stderr] 837 | | decoded_output[8].0 == Opcode::OpBooland as u8 && decoded_output[9].0 == Opcode::OpSwap as u8 && decoded_output[10].0 == 65u8 && [INFO] [stderr] ... | [INFO] [stderr] 841 | | } [INFO] [stderr] 842 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 834 | } else if op4 == Opcode::OpSwap as u8 && decoded_output.len() == 16 && [INFO] [stderr] 835 | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == 32u8 && decoded_output[7].0 == Opcode::OpEqual as u8 && [INFO] [stderr] 836 | decoded_output[8].0 == Opcode::OpBooland as u8 && decoded_output[9].0 == Opcode::OpSwap as u8 && decoded_output[10].0 == 65u8 && [INFO] [stderr] 837 | decoded_output[11].0 == Opcode::OpChecksigverify as u8 && decoded_output[12].0 == Opcode::OpSwap as u8 && decoded_output[13].0 == 65u8 && [INFO] [stderr] 838 | decoded_output[14].0 == Opcode::OpChecksig as u8 && decoded_output[15].0 == Opcode::OpBoolor as u8 { [INFO] [stderr] 839 | return OutputType::Strange38; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:907:24 [INFO] [stderr] | [INFO] [stderr] 907 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 908 | | if decoded_output.len() == 9 && [INFO] [stderr] 909 | | decoded_output[2].0 == Opcode::OpSha256 as u8 && decoded_output[3].0 == Opcode::OpSha256 as u8 && decoded_output[4].0 == Opcode::OpSha256 as u8 && [INFO] [stderr] 910 | | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == Opcode::OpSha256 as u8 && decoded_output[7].0 == 32u8 && [INFO] [stderr] ... | [INFO] [stderr] 913 | | } [INFO] [stderr] 914 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 907 | } else if decoded_output.len() == 9 && [INFO] [stderr] 908 | decoded_output[2].0 == Opcode::OpSha256 as u8 && decoded_output[3].0 == Opcode::OpSha256 as u8 && decoded_output[4].0 == Opcode::OpSha256 as u8 && [INFO] [stderr] 909 | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == Opcode::OpSha256 as u8 && decoded_output[7].0 == 32u8 && [INFO] [stderr] 910 | decoded_output[8].0 == Opcode::OpEqual as u8 { [INFO] [stderr] 911 | return OutputType::Strange32; [INFO] [stderr] 912 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:924:16 [INFO] [stderr] | [INFO] [stderr] 924 | } else if op0 == 1u8 { [INFO] [stderr] | ________________^ [INFO] [stderr] 925 | | if decoded_output.len() == 23 && [INFO] [stderr] 926 | | decoded_output[1].0 == 65u8 && decoded_output[2].0 == 65u8 && decoded_output[3].0 == 65u8 && [INFO] [stderr] 927 | | decoded_output[4].0 == 65u8 && decoded_output[5].0 == 65u8 && decoded_output[6].0 == 65u8 && [INFO] [stderr] ... | [INFO] [stderr] 935 | | } [INFO] [stderr] 936 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 924 | } else if op0 == 1u8 && decoded_output.len() == 23 && [INFO] [stderr] 925 | decoded_output[1].0 == 65u8 && decoded_output[2].0 == 65u8 && decoded_output[3].0 == 65u8 && [INFO] [stderr] 926 | decoded_output[4].0 == 65u8 && decoded_output[5].0 == 65u8 && decoded_output[6].0 == 65u8 && [INFO] [stderr] 927 | decoded_output[7].0 == 65u8 && decoded_output[8].0 == 65u8 && decoded_output[9].0 == 65u8 && [INFO] [stderr] 928 | decoded_output[10].0 == 65u8 && decoded_output[11].0 == 65u8 && decoded_output[12].0 == 65u8 && [INFO] [stderr] 929 | decoded_output[13].0 == 65u8 && decoded_output[14].0 == 65u8 && decoded_output[15].0 == 65u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::Metadata` [INFO] [stderr] --> src/main.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::Metadata; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `SeekFrom`, `Seek` [INFO] [stderr] --> src/main.rs:6:32 [INFO] [stderr] | [INFO] [stderr] 6 | use std::io::{Read, BufReader, Seek, SeekFrom}; [INFO] [stderr] | ^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `format` [INFO] [stderr] --> src/main.rs:8:23 [INFO] [stderr] | [INFO] [stderr] 8 | use std::fmt::{Write, format}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::PartialEq` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::cmp::PartialEq; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FromBase58` [INFO] [stderr] --> src/main.rs:16:29 [INFO] [stderr] | [INFO] [stderr] 16 | use rust_base58::{ToBase58, FromBase58}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `bloomfilter::Bloom` [INFO] [stderr] --> src/main.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | use bloomfilter::Bloom; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:56:39 [INFO] [stderr] | [INFO] [stderr] 56 | if block_number > 1000000 { [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:125:28 [INFO] [stderr] | [INFO] [stderr] 125 | assert_eq!(3652501241, magic); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `3_652_501_241` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:162:21 [INFO] [stderr] | [INFO] [stderr] 162 | / if !is_coinbase { [INFO] [stderr] 163 | | if (block[prevout_hash_pos] & 0x3) == prefix { [INFO] [stderr] 164 | | let id = copy_id(&block[prevout_hash_pos..prevout_hash_pos+32]); [INFO] [stderr] 165 | | let remove_from_map = match state.out_map.get_mut(&id) { [INFO] [stderr] ... | [INFO] [stderr] 201 | | } [INFO] [stderr] 202 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 162 | if !is_coinbase && (block[prevout_hash_pos] & 0x3) == prefix { [INFO] [stderr] 163 | let id = copy_id(&block[prevout_hash_pos..prevout_hash_pos+32]); [INFO] [stderr] 164 | let remove_from_map = match state.out_map.get_mut(&id) { [INFO] [stderr] 165 | None => { [INFO] [stderr] 166 | let inputs: &mut Vec>; [INFO] [stderr] 167 | if !state.in_map.contains_key(&id) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Op` [INFO] [stderr] --> src/main.rs:258:1 [INFO] [stderr] | [INFO] [stderr] 258 | / enum Opcode { [INFO] [stderr] 259 | | Op0 = 0x00, [INFO] [stderr] 260 | | OpPushdata1 = 0x4C, OpPushdata2, OpPushdata4, [INFO] [stderr] 261 | | Op1Negate, [INFO] [stderr] ... | [INFO] [stderr] 277 | | OpInvalidopcode = 0xFF, [INFO] [stderr] 278 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:938:5 [INFO] [stderr] | [INFO] [stderr] 938 | return OutputType::Unclassified; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `OutputType::Unclassified` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:361:21 [INFO] [stderr] | [INFO] [stderr] 361 | / if decoded_output.len() > 2 && decoded_output[2].0 == 20u8 { [INFO] [stderr] 362 | | if decoded_output.len() > 3 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 363 | | if decoded_output.len() > 4 { [INFO] [stderr] 364 | | let op4 = decoded_output[4].0; [INFO] [stderr] ... | [INFO] [stderr] 379 | | } [INFO] [stderr] 380 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 361 | if decoded_output.len() > 2 && decoded_output[2].0 == 20u8 && decoded_output.len() > 3 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 362 | if decoded_output.len() > 4 { [INFO] [stderr] 363 | let op4 = decoded_output[4].0; [INFO] [stderr] 364 | if op4 == Opcode::OpChecksig as u8 { [INFO] [stderr] 365 | if decoded_output.len() == 5 { [INFO] [stderr] 366 | return OutputType::PayToAddress; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:362:25 [INFO] [stderr] | [INFO] [stderr] 362 | / if decoded_output.len() > 3 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 363 | | if decoded_output.len() > 4 { [INFO] [stderr] 364 | | let op4 = decoded_output[4].0; [INFO] [stderr] 365 | | if op4 == Opcode::OpChecksig as u8 { [INFO] [stderr] ... | [INFO] [stderr] 378 | | } [INFO] [stderr] 379 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 362 | if decoded_output.len() > 3 && decoded_output[3].0 == Opcode::OpEqualverify as u8 && decoded_output.len() > 4 { [INFO] [stderr] 363 | let op4 = decoded_output[4].0; [INFO] [stderr] 364 | if op4 == Opcode::OpChecksig as u8 { [INFO] [stderr] 365 | if decoded_output.len() == 5 { [INFO] [stderr] 366 | return OutputType::PayToAddress; [INFO] [stderr] 367 | } else if decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpNop as u8 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:390:21 [INFO] [stderr] | [INFO] [stderr] 390 | / if decoded_output.len() > 2 && decoded_output[2].0 == 32u8 { [INFO] [stderr] 391 | | if decoded_output.len() > 3 { [INFO] [stderr] 392 | | let op3 = decoded_output[3].0; [INFO] [stderr] 393 | | if op3 == Opcode::OpEqual as u8 { [INFO] [stderr] ... | [INFO] [stderr] 406 | | } [INFO] [stderr] 407 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 390 | if decoded_output.len() > 2 && decoded_output[2].0 == 32u8 && decoded_output.len() > 3 { [INFO] [stderr] 391 | let op3 = decoded_output[3].0; [INFO] [stderr] 392 | if op3 == Opcode::OpEqual as u8 { [INFO] [stderr] 393 | if decoded_output.len() == 11 && [INFO] [stderr] 394 | decoded_output[4].0 == Opcode::OpNotif as u8 && [INFO] [stderr] 395 | decoded_output[5].0 == Opcode::OpHash256 as u8 && decoded_output[6].0 == 32u8 && decoded_output[7].0 == Opcode::OpEqual as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:400:36 [INFO] [stderr] | [INFO] [stderr] 400 | } else if op3 == Opcode::OpEqualverify as u8 { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 401 | | if decoded_output.len() == 5 && [INFO] [stderr] 402 | | decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 403 | | return OutputType::PayToAddressH256; [INFO] [stderr] 404 | | } [INFO] [stderr] 405 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 400 | } else if op3 == Opcode::OpEqualverify as u8 && decoded_output.len() == 5 && [INFO] [stderr] 401 | decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 402 | return OutputType::PayToAddressH256; [INFO] [stderr] 403 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:408:24 [INFO] [stderr] | [INFO] [stderr] 408 | } else if op1 == Opcode::OpDup as u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 409 | | if decoded_output.len() == 3 && decoded_output[2].0 == Opcode::OpDup as u8 { [INFO] [stderr] 410 | | return OutputType::OpDup; [INFO] [stderr] 411 | | } [INFO] [stderr] 412 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 408 | } else if op1 == Opcode::OpDup as u8 && decoded_output.len() == 3 && decoded_output[2].0 == Opcode::OpDup as u8 { [INFO] [stderr] 409 | return OutputType::OpDup; [INFO] [stderr] 410 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:422:21 [INFO] [stderr] | [INFO] [stderr] 422 | / if decoded_output.len() > 2 && decoded_output[2].0 == Opcode::Op1Add as u8 { [INFO] [stderr] 423 | | if decoded_output.len() == 4 && decoded_output[3].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 424 | | return OutputType::Strange6; [INFO] [stderr] 425 | | } [INFO] [stderr] 426 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 422 | if decoded_output.len() > 2 && decoded_output[2].0 == Opcode::Op1Add as u8 && decoded_output.len() == 4 && decoded_output[3].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 423 | return OutputType::Strange6; [INFO] [stderr] 424 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:430:28 [INFO] [stderr] | [INFO] [stderr] 430 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 431 | | if decoded_output[2].0 == Opcode::OpSwap as u8 { [INFO] [stderr] 432 | | if decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) { [INFO] [stderr] 433 | | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] ... | [INFO] [stderr] 462 | | } [INFO] [stderr] 463 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 430 | } else if decoded_output[2].0 == Opcode::OpSwap as u8 { [INFO] [stderr] 431 | if decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) { [INFO] [stderr] 432 | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 433 | if decoded_output.len() > 5 { [INFO] [stderr] 434 | let op5 = decoded_output[5].0; [INFO] [stderr] 435 | if op5 == Opcode::OpSwap as u8 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:431:25 [INFO] [stderr] | [INFO] [stderr] 431 | / if decoded_output[2].0 == Opcode::OpSwap as u8 { [INFO] [stderr] 432 | | if decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) { [INFO] [stderr] 433 | | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 434 | | if decoded_output.len() > 5 { [INFO] [stderr] ... | [INFO] [stderr] 461 | | } [INFO] [stderr] 462 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 431 | if decoded_output[2].0 == Opcode::OpSwap as u8 && decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) { [INFO] [stderr] 432 | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 433 | if decoded_output.len() > 5 { [INFO] [stderr] 434 | let op5 = decoded_output[5].0; [INFO] [stderr] 435 | if op5 == Opcode::OpSwap as u8 { [INFO] [stderr] 436 | if decoded_output.len() == 47 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:432:29 [INFO] [stderr] | [INFO] [stderr] 432 | / if decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) { [INFO] [stderr] 433 | | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 434 | | if decoded_output.len() > 5 { [INFO] [stderr] 435 | | let op5 = decoded_output[5].0; [INFO] [stderr] ... | [INFO] [stderr] 460 | | } [INFO] [stderr] 461 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 432 | if decoded_output.len() > 3 && (decoded_output[3].0 == 33u8 || decoded_output[3].0 == 65u8) && decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 433 | if decoded_output.len() > 5 { [INFO] [stderr] 434 | let op5 = decoded_output[5].0; [INFO] [stderr] 435 | if op5 == Opcode::OpSwap as u8 { [INFO] [stderr] 436 | if decoded_output.len() == 47 && [INFO] [stderr] 437 | decoded_output[6].0 == Opcode::Op3 as u8 && decoded_output[7].0 == Opcode::OpPick as u8 && decoded_output[8].0 == Opcode::OpSha256 as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:433:33 [INFO] [stderr] | [INFO] [stderr] 433 | / if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 434 | | if decoded_output.len() > 5 { [INFO] [stderr] 435 | | let op5 = decoded_output[5].0; [INFO] [stderr] 436 | | if op5 == Opcode::OpSwap as u8 { [INFO] [stderr] ... | [INFO] [stderr] 459 | | } [INFO] [stderr] 460 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 433 | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::OpChecksig as u8 && decoded_output.len() > 5 { [INFO] [stderr] 434 | let op5 = decoded_output[5].0; [INFO] [stderr] 435 | if op5 == Opcode::OpSwap as u8 { [INFO] [stderr] 436 | if decoded_output.len() == 47 && [INFO] [stderr] 437 | decoded_output[6].0 == Opcode::Op3 as u8 && decoded_output[7].0 == Opcode::OpPick as u8 && decoded_output[8].0 == Opcode::OpSha256 as u8 && [INFO] [stderr] 438 | decoded_output[9].0 == 32u8 && decoded_output[10].0 == Opcode::OpEqual as u8 && decoded_output[11].0 == Opcode::Op3 as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:454:48 [INFO] [stderr] | [INFO] [stderr] 454 | } else if op5 == Opcode::OpBoolor as u8 { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 455 | | if decoded_output.len() == 6 { [INFO] [stderr] 456 | | return OutputType::Strange37; [INFO] [stderr] 457 | | } [INFO] [stderr] 458 | | } [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 454 | } else if op5 == Opcode::OpBoolor as u8 && decoded_output.len() == 6 { [INFO] [stderr] 455 | return OutputType::Strange37; [INFO] [stderr] 456 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:467:13 [INFO] [stderr] | [INFO] [stderr] 467 | / if decoded_output.len() > 1 && decoded_output[1].0 == Opcode::OpNop2 as u8 { [INFO] [stderr] 468 | | if decoded_output.len() == 3 && decoded_output[2].0 == Opcode::OpDrop as u8 { [INFO] [stderr] 469 | | return OutputType::Strange1; [INFO] [stderr] 470 | | } [INFO] [stderr] 471 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 467 | if decoded_output.len() > 1 && decoded_output[1].0 == Opcode::OpNop2 as u8 && decoded_output.len() == 3 && decoded_output[2].0 == Opcode::OpDrop as u8 { [INFO] [stderr] 468 | return OutputType::Strange1; [INFO] [stderr] 469 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:481:20 [INFO] [stderr] | [INFO] [stderr] 481 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 482 | | if decoded_output.len() > 2 && decoded_output[1].0 == Opcode::OpDrop as u8 { [INFO] [stderr] 483 | | if decoded_output.len() == 3 { [INFO] [stderr] 484 | | if decoded_output[2].0 == Opcode::Op1 as u8 { [INFO] [stderr] ... | [INFO] [stderr] 494 | | } [INFO] [stderr] 495 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 481 | } else if decoded_output.len() > 2 && decoded_output[1].0 == Opcode::OpDrop as u8 { [INFO] [stderr] 482 | if decoded_output.len() == 3 { [INFO] [stderr] 483 | if decoded_output[2].0 == Opcode::Op1 as u8 { [INFO] [stderr] 484 | return OutputType::Strange26; [INFO] [stderr] 485 | } [INFO] [stderr] 486 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:487:28 [INFO] [stderr] | [INFO] [stderr] 487 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 488 | | if decoded_output.len() == 7 && [INFO] [stderr] 489 | | decoded_output[2].0 == Opcode::OpDup as u8 && decoded_output[3].0 == Opcode::OpHash160 as u8 && decoded_output[4].0 == 20u8 && [INFO] [stderr] 490 | | decoded_output[5].0 == Opcode::OpEqualverify as u8 && decoded_output[6].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 491 | | return OutputType::Strange8; [INFO] [stderr] 492 | | } [INFO] [stderr] 493 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 487 | } else if decoded_output.len() == 7 && [INFO] [stderr] 488 | decoded_output[2].0 == Opcode::OpDup as u8 && decoded_output[3].0 == Opcode::OpHash160 as u8 && decoded_output[4].0 == 20u8 && [INFO] [stderr] 489 | decoded_output[5].0 == Opcode::OpEqualverify as u8 && decoded_output[6].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 490 | return OutputType::Strange8; [INFO] [stderr] 491 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:506:37 [INFO] [stderr] | [INFO] [stderr] 506 | / if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::Op3 as u8 { [INFO] [stderr] 507 | | if decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 508 | | return OutputType::Multisig2of3; [INFO] [stderr] 509 | | } [INFO] [stderr] 510 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 506 | if decoded_output.len() > 4 && decoded_output[4].0 == Opcode::Op3 as u8 && decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 507 | return OutputType::Multisig2of3; [INFO] [stderr] 508 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:511:40 [INFO] [stderr] | [INFO] [stderr] 511 | } else if op3 == Opcode::Op2 as u8 { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 512 | | if decoded_output.len() == 5 && decoded_output[4].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 513 | | return OutputType::Multisig2of2; [INFO] [stderr] 514 | | } [INFO] [stderr] 515 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 511 | } else if op3 == Opcode::Op2 as u8 && decoded_output.len() == 5 && decoded_output[4].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 512 | return OutputType::Multisig2of2; [INFO] [stderr] 513 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:517:32 [INFO] [stderr] | [INFO] [stderr] 517 | } else if op2 == Opcode::Op1 as u8 { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 518 | | if decoded_output.len() == 19 && [INFO] [stderr] 519 | | decoded_output[3].0 == Opcode::Op2 as u8 && decoded_output[4].0 == Opcode::Op3 as u8 && decoded_output[5].0 == Opcode::Op4 as u8 && [INFO] [stderr] 520 | | decoded_output[6].0 == Opcode::Op5 as u8 && decoded_output[7].0 == Opcode::Op6 as u8 && decoded_output[8].0 == Opcode::Op7 as u8 && [INFO] [stderr] ... | [INFO] [stderr] 526 | | } [INFO] [stderr] 527 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 517 | } else if op2 == Opcode::Op1 as u8 && decoded_output.len() == 19 && [INFO] [stderr] 518 | decoded_output[3].0 == Opcode::Op2 as u8 && decoded_output[4].0 == Opcode::Op3 as u8 && decoded_output[5].0 == Opcode::Op4 as u8 && [INFO] [stderr] 519 | decoded_output[6].0 == Opcode::Op5 as u8 && decoded_output[7].0 == Opcode::Op6 as u8 && decoded_output[8].0 == Opcode::Op7 as u8 && [INFO] [stderr] 520 | decoded_output[9].0 == Opcode::Op8 as u8 && decoded_output[10].0 == Opcode::Op9 as u8 && decoded_output[11].0 == Opcode::Op10 as u8 && [INFO] [stderr] 521 | decoded_output[12].0 == Opcode::Op11 as u8 && decoded_output[13].0 == Opcode::Op12 as u8 && decoded_output[14].0 == Opcode::Op13 as u8 && [INFO] [stderr] 522 | decoded_output[15].0 == Opcode::Op14 as u8 && decoded_output[16].0 == 33u8 as u8 && decoded_output[17].0 == Opcode::Op16 as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:529:24 [INFO] [stderr] | [INFO] [stderr] 529 | } else if op1 == Opcode::Op2 as u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 530 | | if decoded_output.len() == 2 { [INFO] [stderr] 531 | | return OutputType::Strange40; [INFO] [stderr] 532 | | } [INFO] [stderr] 533 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 529 | } else if op1 == Opcode::Op2 as u8 && decoded_output.len() == 2 { [INFO] [stderr] 530 | return OutputType::Strange40; [INFO] [stderr] 531 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:536:13 [INFO] [stderr] | [INFO] [stderr] 536 | / if decoded_output.len() > 1 && decoded_output[1].0 == Opcode::Op3 as u8 { [INFO] [stderr] 537 | | if decoded_output.len() ==3 && decoded_output[2].0 == Opcode::OpEqual as u8 { [INFO] [stderr] 538 | | return OutputType::Strange2; [INFO] [stderr] 539 | | } [INFO] [stderr] 540 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 536 | if decoded_output.len() > 1 && decoded_output[1].0 == Opcode::Op3 as u8 && decoded_output.len() ==3 && decoded_output[2].0 == Opcode::OpEqual as u8 { [INFO] [stderr] 537 | return OutputType::Strange2; [INFO] [stderr] 538 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:542:13 [INFO] [stderr] | [INFO] [stderr] 542 | / if decoded_output.len() > 1 && decoded_output[1].0 == 20u8 { [INFO] [stderr] 543 | | if decoded_output.len() > 2 { [INFO] [stderr] 544 | | let op2 = decoded_output[2].0; [INFO] [stderr] 545 | | if op2 == Opcode::OpEqual as u8 { [INFO] [stderr] ... | [INFO] [stderr] 558 | | } [INFO] [stderr] 559 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 542 | if decoded_output.len() > 1 && decoded_output[1].0 == 20u8 && decoded_output.len() > 2 { [INFO] [stderr] 543 | let op2 = decoded_output[2].0; [INFO] [stderr] 544 | if op2 == Opcode::OpEqual as u8 { [INFO] [stderr] 545 | if decoded_output.len() == 3 { [INFO] [stderr] 546 | return OutputType::PayToScriptHash; [INFO] [stderr] 547 | } else if decoded_output.len() == 7 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:553:28 [INFO] [stderr] | [INFO] [stderr] 553 | } else if op2 == Opcode::OpEqualverify as u8 { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 554 | | if decoded_output.len() == 5 && decoded_output[3].0 == 33u8 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 555 | | return OutputType::Strange29; [INFO] [stderr] 556 | | } [INFO] [stderr] 557 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 553 | } else if op2 == Opcode::OpEqualverify as u8 && decoded_output.len() == 5 && decoded_output[3].0 == 33u8 && decoded_output[4].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] 554 | return OutputType::Strange29; [INFO] [stderr] 555 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:567:17 [INFO] [stderr] | [INFO] [stderr] 567 | / if op1 == 33u8 || op1 == 65u8 || op1 == 76u8 || op1 == 52u8 { [INFO] [stderr] 568 | | if decoded_output.len() > 2 { [INFO] [stderr] 569 | | let op2 = decoded_output[2].0; [INFO] [stderr] 570 | | if op2 == 33u8 || op2 == 65u8 || op2 == 76u8 || op2 == 39u8 { [INFO] [stderr] ... | [INFO] [stderr] 600 | | } [INFO] [stderr] 601 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 567 | if (op1 == 33u8 || op1 == 65u8 || op1 == 76u8 || op1 == 52u8) && decoded_output.len() > 2 { [INFO] [stderr] 568 | let op2 = decoded_output[2].0; [INFO] [stderr] 569 | if op2 == 33u8 || op2 == 65u8 || op2 == 76u8 || op2 == 39u8 { [INFO] [stderr] 570 | if decoded_output.len() > 3 { [INFO] [stderr] 571 | let op3 = decoded_output[3].0; [INFO] [stderr] 572 | if op3 == Opcode::Op2 as u8 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:577:40 [INFO] [stderr] | [INFO] [stderr] 577 | } else if op3 == 33u8 || op3 == 65u8 || op3 == 66u8 { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 578 | | if decoded_output.len() > 4 { [INFO] [stderr] 579 | | let op4 = decoded_output[4].0; [INFO] [stderr] 580 | | if op4 == Opcode::Op3 as u8 { [INFO] [stderr] ... | [INFO] [stderr] 592 | | } [INFO] [stderr] 593 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 577 | } else if (op3 == 33u8 || op3 == 65u8 || op3 == 66u8) && decoded_output.len() > 4 { [INFO] [stderr] 578 | let op4 = decoded_output[4].0; [INFO] [stderr] 579 | if op4 == Opcode::Op3 as u8 { [INFO] [stderr] 580 | if decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 581 | return OutputType::Multisig1of3; [INFO] [stderr] 582 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:584:48 [INFO] [stderr] | [INFO] [stderr] 584 | } else if op4 == 33u8 { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 585 | | if decoded_output.len() == 12 && [INFO] [stderr] 586 | | decoded_output[5].0 == 33u8 && decoded_output[6].0 == 33u8 && decoded_output[7].0 == 33u8 && [INFO] [stderr] 587 | | decoded_output[8].0 == 33u8 && decoded_output[9].0 == 33u8 && decoded_output[10].0 == Opcode::Op9 as u8 && [INFO] [stderr] ... | [INFO] [stderr] 590 | | } [INFO] [stderr] 591 | | } [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 584 | } else if op4 == 33u8 && decoded_output.len() == 12 && [INFO] [stderr] 585 | decoded_output[5].0 == 33u8 && decoded_output[6].0 == 33u8 && decoded_output[7].0 == 33u8 && [INFO] [stderr] 586 | decoded_output[8].0 == 33u8 && decoded_output[9].0 == 33u8 && decoded_output[10].0 == Opcode::Op9 as u8 && [INFO] [stderr] 587 | decoded_output[11].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 588 | return OutputType::Multisig1of9; [INFO] [stderr] 589 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:595:32 [INFO] [stderr] | [INFO] [stderr] 595 | } else if op2 == Opcode::Op1 as u8 { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 596 | | if decoded_output.len() == 4 && decoded_output[3].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 597 | | return OutputType::Multisig1of1; [INFO] [stderr] 598 | | } [INFO] [stderr] 599 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 595 | } else if op2 == Opcode::Op1 as u8 && decoded_output.len() == 4 && decoded_output[3].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 596 | return OutputType::Multisig1of1; [INFO] [stderr] 597 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:607:21 [INFO] [stderr] | [INFO] [stderr] 607 | / if decoded_output.len() > 2 && (decoded_output[2].0 == 65u8 || decoded_output[2].0 == 33u8) { [INFO] [stderr] 608 | | if decoded_output.len() > 3 && (decoded_output[3].0 == 65u8 || decoded_output[3].0 == 33u8) { [INFO] [stderr] 609 | | if decoded_output.len() > 4 { [INFO] [stderr] 610 | | let op4 = decoded_output[4].0; [INFO] [stderr] ... | [INFO] [stderr] 622 | | } [INFO] [stderr] 623 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 607 | if decoded_output.len() > 2 && (decoded_output[2].0 == 65u8 || decoded_output[2].0 == 33u8) && decoded_output.len() > 3 && (decoded_output[3].0 == 65u8 || decoded_output[3].0 == 33u8) { [INFO] [stderr] 608 | if decoded_output.len() > 4 { [INFO] [stderr] 609 | let op4 = decoded_output[4].0; [INFO] [stderr] 610 | if op4 == Opcode::Op3 as u8 { [INFO] [stderr] 611 | if decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 612 | return OutputType::Multisig3of3; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:608:25 [INFO] [stderr] | [INFO] [stderr] 608 | / if decoded_output.len() > 3 && (decoded_output[3].0 == 65u8 || decoded_output[3].0 == 33u8) { [INFO] [stderr] 609 | | if decoded_output.len() > 4 { [INFO] [stderr] 610 | | let op4 = decoded_output[4].0; [INFO] [stderr] 611 | | if op4 == Opcode::Op3 as u8 { [INFO] [stderr] ... | [INFO] [stderr] 621 | | } [INFO] [stderr] 622 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 608 | if decoded_output.len() > 3 && (decoded_output[3].0 == 65u8 || decoded_output[3].0 == 33u8) && decoded_output.len() > 4 { [INFO] [stderr] 609 | let op4 = decoded_output[4].0; [INFO] [stderr] 610 | if op4 == Opcode::Op3 as u8 { [INFO] [stderr] 611 | if decoded_output.len() == 6 && decoded_output[5].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 612 | return OutputType::Multisig3of3; [INFO] [stderr] 613 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:615:40 [INFO] [stderr] | [INFO] [stderr] 615 | } else if op4 == 65u8 { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 616 | | if decoded_output.len() == 8 && [INFO] [stderr] 617 | | decoded_output[5].0 == 65u8 && decoded_output[6].0 == Opcode::Op5 as u8 && decoded_output[7].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 618 | | return OutputType::Multisig3of5; [INFO] [stderr] 619 | | } [INFO] [stderr] 620 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 615 | } else if op4 == 65u8 && decoded_output.len() == 8 && [INFO] [stderr] 616 | decoded_output[5].0 == 65u8 && decoded_output[6].0 == Opcode::Op5 as u8 && decoded_output[7].0 == Opcode::OpCheckmultisig as u8 { [INFO] [stderr] 617 | return OutputType::Multisig3of5; [INFO] [stderr] 618 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:624:24 [INFO] [stderr] | [INFO] [stderr] 624 | } else if op1 == Opcode::OpDrop as u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 625 | | if decoded_output.len() == 4 && [INFO] [stderr] 626 | | decoded_output[2].0 == Opcode::OpDrop as u8 && decoded_output[3].0 == Opcode::Op1 as u8 { [INFO] [stderr] 627 | | return OutputType::Strange33; [INFO] [stderr] 628 | | } [INFO] [stderr] 629 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 624 | } else if op1 == Opcode::OpDrop as u8 && decoded_output.len() == 4 && [INFO] [stderr] 625 | decoded_output[2].0 == Opcode::OpDrop as u8 && decoded_output[3].0 == Opcode::Op1 as u8 { [INFO] [stderr] 626 | return OutputType::Strange33; [INFO] [stderr] 627 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:655:24 [INFO] [stderr] | [INFO] [stderr] 655 | } else if op1 == Opcode::OpHash160 as u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 656 | | if decoded_output.len() > 3 && decoded_output[2].0 == 20u8 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 657 | | if decoded_output.len() > 4 { [INFO] [stderr] 658 | | let op4 = decoded_output[4].0; [INFO] [stderr] ... | [INFO] [stderr] 674 | | } [INFO] [stderr] 675 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 655 | } else if op1 == Opcode::OpHash160 as u8 && decoded_output.len() > 3 && decoded_output[2].0 == 20u8 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 656 | if decoded_output.len() > 4 { [INFO] [stderr] 657 | let op4 = decoded_output[4].0; [INFO] [stderr] 658 | if op4 == 33u8 { [INFO] [stderr] 659 | if decoded_output.len() == 10 && [INFO] [stderr] 660 | decoded_output[5].0 == Opcode::OpChecksig as u8 && decoded_output[6].0 == Opcode::OpElse as u8 && decoded_output[7].0 == 33u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:656:21 [INFO] [stderr] | [INFO] [stderr] 656 | / if decoded_output.len() > 3 && decoded_output[2].0 == 20u8 && decoded_output[3].0 == Opcode::OpEqualverify as u8 { [INFO] [stderr] 657 | | if decoded_output.len() > 4 { [INFO] [stderr] 658 | | let op4 = decoded_output[4].0; [INFO] [stderr] 659 | | if op4 == 33u8 { [INFO] [stderr] ... | [INFO] [stderr] 673 | | } [INFO] [stderr] 674 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 656 | if decoded_output.len() > 3 && decoded_output[2].0 == 20u8 && decoded_output[3].0 == Opcode::OpEqualverify as u8 && decoded_output.len() > 4 { [INFO] [stderr] 657 | let op4 = decoded_output[4].0; [INFO] [stderr] 658 | if op4 == 33u8 { [INFO] [stderr] 659 | if decoded_output.len() == 10 && [INFO] [stderr] 660 | decoded_output[5].0 == Opcode::OpChecksig as u8 && decoded_output[6].0 == Opcode::OpElse as u8 && decoded_output[7].0 == 33u8 && [INFO] [stderr] 661 | decoded_output[8].0 == Opcode::OpChecksig as u8 && decoded_output[9].0 == Opcode::OpEndif as u8 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:665:36 [INFO] [stderr] | [INFO] [stderr] 665 | } else if op4 == Opcode::OpHash160 as u8 { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 666 | | if decoded_output.len() == 14 && [INFO] [stderr] 667 | | decoded_output[5].0 == 20u8 && decoded_output[6].0 == Opcode::OpEqualverify as u8 && decoded_output[7].0 == Opcode::OpHash160 as u8 && [INFO] [stderr] 668 | | decoded_output[8].0 == 20u8 && decoded_output[9].0 == Opcode::OpEqual as u8 && decoded_output[10].0 == Opcode::OpElse as u8 && [INFO] [stderr] ... | [INFO] [stderr] 671 | | } [INFO] [stderr] 672 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 665 | } else if op4 == Opcode::OpHash160 as u8 && decoded_output.len() == 14 && [INFO] [stderr] 666 | decoded_output[5].0 == 20u8 && decoded_output[6].0 == Opcode::OpEqualverify as u8 && decoded_output[7].0 == Opcode::OpHash160 as u8 && [INFO] [stderr] 667 | decoded_output[8].0 == 20u8 && decoded_output[9].0 == Opcode::OpEqual as u8 && decoded_output[10].0 == Opcode::OpElse as u8 && [INFO] [stderr] 668 | decoded_output[11].0 == 65u8 && decoded_output[12].0 == Opcode::OpChecksig as u8 && decoded_output[13].0 == Opcode::OpEndif as u8 { [INFO] [stderr] 669 | return OutputType::Strange42; [INFO] [stderr] 670 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:757:24 [INFO] [stderr] | [INFO] [stderr] 757 | } else if op1 == Opcode::Op4 as u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 758 | | if decoded_output.len() == 72 && [INFO] [stderr] 759 | | decoded_output[2].0 == Opcode::OpSub as u8 && decoded_output[3].0 == Opcode::Op6 as u8 && decoded_output[4].0 == Opcode::OpAdd as u8 && [INFO] [stderr] 760 | | decoded_output[5].0 == Opcode::OpEqual as u8 && decoded_output[6].0 == Opcode::OpDup as u8 && decoded_output[7].0 == Opcode::OpNotif as u8 && [INFO] [stderr] ... | [INFO] [stderr] 784 | | } [INFO] [stderr] 785 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 757 | } else if op1 == Opcode::Op4 as u8 && decoded_output.len() == 72 && [INFO] [stderr] 758 | decoded_output[2].0 == Opcode::OpSub as u8 && decoded_output[3].0 == Opcode::Op6 as u8 && decoded_output[4].0 == Opcode::OpAdd as u8 && [INFO] [stderr] 759 | decoded_output[5].0 == Opcode::OpEqual as u8 && decoded_output[6].0 == Opcode::OpDup as u8 && decoded_output[7].0 == Opcode::OpNotif as u8 && [INFO] [stderr] 760 | decoded_output[8].0 == Opcode::OpReturn as u8 && decoded_output[9].0 == Opcode::OpEndif as u8 && decoded_output[10].0 == Opcode::OpNegate as u8 && [INFO] [stderr] 761 | decoded_output[11].0 == Opcode::Op2 as u8 && decoded_output[12].0 == Opcode::OpAdd as u8 && decoded_output[13].0 == Opcode::Op1Sub as u8 && [INFO] [stderr] 762 | decoded_output[14].0 == Opcode::OpEqual as u8 && decoded_output[15].0 == Opcode::OpDup as u8 && decoded_output[16].0 == Opcode::OpNotif as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:824:24 [INFO] [stderr] | [INFO] [stderr] 824 | } else if op1 == 1u8 { [INFO] [stderr] | ________________________^ [INFO] [stderr] 825 | | if decoded_output.len() > 3 && decoded_output[2].0 == 1u8 && decoded_output[3].0 == Opcode::OpWithin as u8 { [INFO] [stderr] 826 | | if decoded_output.len() > 4 { [INFO] [stderr] 827 | | let op4 = decoded_output[4].0; [INFO] [stderr] ... | [INFO] [stderr] 844 | | } [INFO] [stderr] 845 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 824 | } else if op1 == 1u8 && decoded_output.len() > 3 && decoded_output[2].0 == 1u8 && decoded_output[3].0 == Opcode::OpWithin as u8 { [INFO] [stderr] 825 | if decoded_output.len() > 4 { [INFO] [stderr] 826 | let op4 = decoded_output[4].0; [INFO] [stderr] 827 | if op4 == Opcode::OpVerify as u8 { [INFO] [stderr] 828 | if decoded_output.len() == 10 && [INFO] [stderr] 829 | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == 32u8 && decoded_output[7].0 == Opcode::OpEqualverify as u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:825:21 [INFO] [stderr] | [INFO] [stderr] 825 | / if decoded_output.len() > 3 && decoded_output[2].0 == 1u8 && decoded_output[3].0 == Opcode::OpWithin as u8 { [INFO] [stderr] 826 | | if decoded_output.len() > 4 { [INFO] [stderr] 827 | | let op4 = decoded_output[4].0; [INFO] [stderr] 828 | | if op4 == Opcode::OpVerify as u8 { [INFO] [stderr] ... | [INFO] [stderr] 843 | | } [INFO] [stderr] 844 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 825 | if decoded_output.len() > 3 && decoded_output[2].0 == 1u8 && decoded_output[3].0 == Opcode::OpWithin as u8 && decoded_output.len() > 4 { [INFO] [stderr] 826 | let op4 = decoded_output[4].0; [INFO] [stderr] 827 | if op4 == Opcode::OpVerify as u8 { [INFO] [stderr] 828 | if decoded_output.len() == 10 && [INFO] [stderr] 829 | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == 32u8 && decoded_output[7].0 == Opcode::OpEqualverify as u8 && [INFO] [stderr] 830 | decoded_output[8].0 == 33u8 && decoded_output[9].0 == Opcode::OpChecksig as u8 { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:834:36 [INFO] [stderr] | [INFO] [stderr] 834 | } else if op4 == Opcode::OpSwap as u8 { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 835 | | if decoded_output.len() == 16 && [INFO] [stderr] 836 | | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == 32u8 && decoded_output[7].0 == Opcode::OpEqual as u8 && [INFO] [stderr] 837 | | decoded_output[8].0 == Opcode::OpBooland as u8 && decoded_output[9].0 == Opcode::OpSwap as u8 && decoded_output[10].0 == 65u8 && [INFO] [stderr] ... | [INFO] [stderr] 841 | | } [INFO] [stderr] 842 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 834 | } else if op4 == Opcode::OpSwap as u8 && decoded_output.len() == 16 && [INFO] [stderr] 835 | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == 32u8 && decoded_output[7].0 == Opcode::OpEqual as u8 && [INFO] [stderr] 836 | decoded_output[8].0 == Opcode::OpBooland as u8 && decoded_output[9].0 == Opcode::OpSwap as u8 && decoded_output[10].0 == 65u8 && [INFO] [stderr] 837 | decoded_output[11].0 == Opcode::OpChecksigverify as u8 && decoded_output[12].0 == Opcode::OpSwap as u8 && decoded_output[13].0 == 65u8 && [INFO] [stderr] 838 | decoded_output[14].0 == Opcode::OpChecksig as u8 && decoded_output[15].0 == Opcode::OpBoolor as u8 { [INFO] [stderr] 839 | return OutputType::Strange38; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:907:24 [INFO] [stderr] | [INFO] [stderr] 907 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 908 | | if decoded_output.len() == 9 && [INFO] [stderr] 909 | | decoded_output[2].0 == Opcode::OpSha256 as u8 && decoded_output[3].0 == Opcode::OpSha256 as u8 && decoded_output[4].0 == Opcode::OpSha256 as u8 && [INFO] [stderr] 910 | | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == Opcode::OpSha256 as u8 && decoded_output[7].0 == 32u8 && [INFO] [stderr] ... | [INFO] [stderr] 913 | | } [INFO] [stderr] 914 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 907 | } else if decoded_output.len() == 9 && [INFO] [stderr] 908 | decoded_output[2].0 == Opcode::OpSha256 as u8 && decoded_output[3].0 == Opcode::OpSha256 as u8 && decoded_output[4].0 == Opcode::OpSha256 as u8 && [INFO] [stderr] 909 | decoded_output[5].0 == Opcode::OpSha256 as u8 && decoded_output[6].0 == Opcode::OpSha256 as u8 && decoded_output[7].0 == 32u8 && [INFO] [stderr] 910 | decoded_output[8].0 == Opcode::OpEqual as u8 { [INFO] [stderr] 911 | return OutputType::Strange32; [INFO] [stderr] 912 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/main.rs:924:16 [INFO] [stderr] | [INFO] [stderr] 924 | } else if op0 == 1u8 { [INFO] [stderr] | ________________^ [INFO] [stderr] 925 | | if decoded_output.len() == 23 && [INFO] [stderr] 926 | | decoded_output[1].0 == 65u8 && decoded_output[2].0 == 65u8 && decoded_output[3].0 == 65u8 && [INFO] [stderr] 927 | | decoded_output[4].0 == 65u8 && decoded_output[5].0 == 65u8 && decoded_output[6].0 == 65u8 && [INFO] [stderr] ... | [INFO] [stderr] 935 | | } [INFO] [stderr] 936 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 924 | } else if op0 == 1u8 && decoded_output.len() == 23 && [INFO] [stderr] 925 | decoded_output[1].0 == 65u8 && decoded_output[2].0 == 65u8 && decoded_output[3].0 == 65u8 && [INFO] [stderr] 926 | decoded_output[4].0 == 65u8 && decoded_output[5].0 == 65u8 && decoded_output[6].0 == 65u8 && [INFO] [stderr] 927 | decoded_output[7].0 == 65u8 && decoded_output[8].0 == 65u8 && decoded_output[9].0 == 65u8 && [INFO] [stderr] 928 | decoded_output[10].0 == 65u8 && decoded_output[11].0 == 65u8 && decoded_output[12].0 == 65u8 && [INFO] [stderr] 929 | decoded_output[13].0 == 65u8 && decoded_output[14].0 == 65u8 && decoded_output[15].0 == 65u8 && [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused variable: `filesize` [INFO] [stderr] --> src/main.rs:113:45 [INFO] [stderr] | [INFO] [stderr] 113 | fn read_blocks(prefix: u8, file: &mut File, filesize: u64, initial_block: u32, state: &mut State) -> u32 { [INFO] [stderr] | ^^^^^^^^ help: consider using `_filesize` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/main.rs:141:12 [INFO] [stderr] | [INFO] [stderr] 141 | Ok(len) => { [INFO] [stderr] | ^^^ help: consider using `_len` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `filesize` [INFO] [stderr] --> src/main.rs:113:45 [INFO] [stderr] | [INFO] [stderr] 113 | fn read_blocks(prefix: u8, file: &mut File, filesize: u64, initial_block: u32, state: &mut State) -> u32 { [INFO] [stderr] | ^^^^^^^^ help: consider using `_filesize` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/main.rs:141:12 [INFO] [stderr] | [INFO] [stderr] 141 | Ok(len) => { [INFO] [stderr] | ^^^ help: consider using `_len` instead [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op1Negate` [INFO] [stderr] --> src/main.rs:261:5 [INFO] [stderr] | [INFO] [stderr] 261 | Op1Negate, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op15` [INFO] [stderr] --> src/main.rs:263:80 [INFO] [stderr] | [INFO] [stderr] 263 | Op1, Op2, Op3, Op4, Op5, Op6, Op7, Op8, Op9, Op10, Op11, Op12, Op13, Op14, Op15, Op16, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpVerif` [INFO] [stderr] --> src/main.rs:264:34 [INFO] [stderr] | [INFO] [stderr] 264 | OpNop, OpVer, OpIf, OpNotif, OpVerif, OpVerNotIf, OpElse, OpEndif, OpVerify, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpVerNotIf` [INFO] [stderr] --> src/main.rs:264:43 [INFO] [stderr] | [INFO] [stderr] 264 | OpNop, OpVer, OpIf, OpNotif, OpVerif, OpVerNotIf, OpElse, OpEndif, OpVerify, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Drop` [INFO] [stderr] --> src/main.rs:265:45 [INFO] [stderr] | [INFO] [stderr] 265 | OpReturn, OpToaltStack, OpFromaltstack, Op2Drop, Op2Dup, Op3Dup, Op2Over, Op2Rot, Op2Swap, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op3Dup` [INFO] [stderr] --> src/main.rs:265:62 [INFO] [stderr] | [INFO] [stderr] 265 | OpReturn, OpToaltStack, OpFromaltstack, Op2Drop, Op2Dup, Op3Dup, Op2Over, Op2Rot, Op2Swap, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Over` [INFO] [stderr] --> src/main.rs:265:70 [INFO] [stderr] | [INFO] [stderr] 265 | OpReturn, OpToaltStack, OpFromaltstack, Op2Drop, Op2Dup, Op3Dup, Op2Over, Op2Rot, Op2Swap, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Rot` [INFO] [stderr] --> src/main.rs:265:79 [INFO] [stderr] | [INFO] [stderr] 265 | OpReturn, OpToaltStack, OpFromaltstack, Op2Drop, Op2Dup, Op3Dup, Op2Over, Op2Rot, Op2Swap, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Swap` [INFO] [stderr] --> src/main.rs:265:87 [INFO] [stderr] | [INFO] [stderr] 265 | OpReturn, OpToaltStack, OpFromaltstack, Op2Drop, Op2Dup, Op3Dup, Op2Over, Op2Rot, Op2Swap, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpIfdup` [INFO] [stderr] --> src/main.rs:266:5 [INFO] [stderr] | [INFO] [stderr] 266 | OpIfdup, OpDepth, OpDrop, OpDup, OpNip, OpOver, OpPick, OpRoll, OpRot, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpOver` [INFO] [stderr] --> src/main.rs:266:45 [INFO] [stderr] | [INFO] [stderr] 266 | OpIfdup, OpDepth, OpDrop, OpDup, OpNip, OpOver, OpPick, OpRoll, OpRot, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpCat` [INFO] [stderr] --> src/main.rs:267:21 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpSubstr` [INFO] [stderr] --> src/main.rs:267:28 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpLeft` [INFO] [stderr] --> src/main.rs:267:38 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpRight` [INFO] [stderr] --> src/main.rs:267:46 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpInvert` [INFO] [stderr] --> src/main.rs:267:63 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpAnd` [INFO] [stderr] --> src/main.rs:267:73 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpOr` [INFO] [stderr] --> src/main.rs:268:5 [INFO] [stderr] | [INFO] [stderr] 268 | OpOr, OpXor, OpEqual, OpEqualverify, OpReserved1, OpReserved2, Op1Add, Op1Sub, Op2Mul, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpXor` [INFO] [stderr] --> src/main.rs:268:11 [INFO] [stderr] | [INFO] [stderr] 268 | OpOr, OpXor, OpEqual, OpEqualverify, OpReserved1, OpReserved2, Op1Add, Op1Sub, Op2Mul, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Mul` [INFO] [stderr] --> src/main.rs:268:84 [INFO] [stderr] | [INFO] [stderr] 268 | OpOr, OpXor, OpEqual, OpEqualverify, OpReserved1, OpReserved2, Op1Add, Op1Sub, Op2Mul, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Div` [INFO] [stderr] --> src/main.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | Op2Div, OpNegate, OpAbs, OpNot, Op0NotEqual, OpAdd, OpSub, OpMul, OpDiv, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op0NotEqual` [INFO] [stderr] --> src/main.rs:269:37 [INFO] [stderr] | [INFO] [stderr] 269 | Op2Div, OpNegate, OpAbs, OpNot, Op0NotEqual, OpAdd, OpSub, OpMul, OpDiv, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpMul` [INFO] [stderr] --> src/main.rs:269:64 [INFO] [stderr] | [INFO] [stderr] 269 | Op2Div, OpNegate, OpAbs, OpNot, Op0NotEqual, OpAdd, OpSub, OpMul, OpDiv, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpDiv` [INFO] [stderr] --> src/main.rs:269:71 [INFO] [stderr] | [INFO] [stderr] 269 | Op2Div, OpNegate, OpAbs, OpNot, Op0NotEqual, OpAdd, OpSub, OpMul, OpDiv, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpMod` [INFO] [stderr] --> src/main.rs:270:5 [INFO] [stderr] | [INFO] [stderr] 270 | OpMod, OpLshift, OpRshift, OpBooland, OpBoolor, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpLshift` [INFO] [stderr] --> src/main.rs:270:12 [INFO] [stderr] | [INFO] [stderr] 270 | OpMod, OpLshift, OpRshift, OpBooland, OpBoolor, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpRshift` [INFO] [stderr] --> src/main.rs:270:22 [INFO] [stderr] | [INFO] [stderr] 270 | OpMod, OpLshift, OpRshift, OpBooland, OpBoolor, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpNumequalverify` [INFO] [stderr] --> src/main.rs:271:17 [INFO] [stderr] | [INFO] [stderr] 271 | OpNumequal, OpNumequalverify, OpNumnotequal, OpLessthan, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpNumnotequal` [INFO] [stderr] --> src/main.rs:271:35 [INFO] [stderr] | [INFO] [stderr] 271 | OpNumequal, OpNumequalverify, OpNumnotequal, OpLessthan, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpLessthanorequal` [INFO] [stderr] --> src/main.rs:272:20 [INFO] [stderr] | [INFO] [stderr] 272 | OpGreaterthan, OpLessthanorequal, OpGreaterthanorequal, OpMin, OpMax, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpGreaterthanorequal` [INFO] [stderr] --> src/main.rs:272:39 [INFO] [stderr] | [INFO] [stderr] 272 | OpGreaterthan, OpLessthanorequal, OpGreaterthanorequal, OpMin, OpMax, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpMax` [INFO] [stderr] --> src/main.rs:272:68 [INFO] [stderr] | [INFO] [stderr] 272 | OpGreaterthan, OpLessthanorequal, OpGreaterthanorequal, OpMin, OpMax, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpCodeseparator` [INFO] [stderr] --> src/main.rs:274:16 [INFO] [stderr] | [INFO] [stderr] 274 | OpHash256, OpCodeseparator, OpChecksig, OpChecksigverify, OpCheckmultisig, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpCheckmultisigverify` [INFO] [stderr] --> src/main.rs:275:5 [INFO] [stderr] | [INFO] [stderr] 275 | OpCheckmultisigverify, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpInvalidopcode` [INFO] [stderr] --> src/main.rs:277:5 [INFO] [stderr] | [INFO] [stderr] 277 | OpInvalidopcode = 0xFF, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | write!(&mut out_file_name, "output_{}.txt", prefix); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | writeln!(&mut writer, "{} {} {}", addr, timevalue.time, timevalue.value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:121:29 [INFO] [stderr] | [INFO] [stderr] 121 | let magic = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:121:48 [INFO] [stderr] | [INFO] [stderr] 121 | let magic = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:121:71 [INFO] [stderr] | [INFO] [stderr] 121 | let magic = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:121:95 [INFO] [stderr] | [INFO] [stderr] 121 | let magic = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | reader.read_exact(&mut buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:129:20 [INFO] [stderr] | [INFO] [stderr] 129 | let size = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:129:39 [INFO] [stderr] | [INFO] [stderr] 129 | let size = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:129:62 [INFO] [stderr] | [INFO] [stderr] 129 | let size = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:129:86 [INFO] [stderr] | [INFO] [stderr] 129 | let size = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:130:41 [INFO] [stderr] | [INFO] [stderr] 130 | read_block(prefix, &mut reader, size as u64, state); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/main.rs:168:37 [INFO] [stderr] | [INFO] [stderr] 168 | / if !state.in_map.contains_key(&id) { [INFO] [stderr] 169 | | state.in_map.insert(id, vec![]); [INFO] [stderr] 170 | | } [INFO] [stderr] | |_____________________________________^ help: consider using: `state.in_map.entry(id).or_insert(< [ _ ] > :: into_vec ( box [ $ ( $ x ) , * ] ))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:350:36 [INFO] [stderr] | [INFO] [stderr] 350 | fn classify_output(decoded_output: &Vec<(u8, Option<&[u8]>)>) -> OutputType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(u8, Option<&[u8]>)]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op1Negate` [INFO] [stderr] --> src/main.rs:261:5 [INFO] [stderr] | [INFO] [stderr] 261 | Op1Negate, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op15` [INFO] [stderr] --> src/main.rs:263:80 [INFO] [stderr] | [INFO] [stderr] 263 | Op1, Op2, Op3, Op4, Op5, Op6, Op7, Op8, Op9, Op10, Op11, Op12, Op13, Op14, Op15, Op16, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpVerif` [INFO] [stderr] --> src/main.rs:264:34 [INFO] [stderr] | [INFO] [stderr] 264 | OpNop, OpVer, OpIf, OpNotif, OpVerif, OpVerNotIf, OpElse, OpEndif, OpVerify, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpVerNotIf` [INFO] [stderr] --> src/main.rs:264:43 [INFO] [stderr] | [INFO] [stderr] 264 | OpNop, OpVer, OpIf, OpNotif, OpVerif, OpVerNotIf, OpElse, OpEndif, OpVerify, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Drop` [INFO] [stderr] --> src/main.rs:265:45 [INFO] [stderr] | [INFO] [stderr] 265 | OpReturn, OpToaltStack, OpFromaltstack, Op2Drop, Op2Dup, Op3Dup, Op2Over, Op2Rot, Op2Swap, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op3Dup` [INFO] [stderr] --> src/main.rs:265:62 [INFO] [stderr] | [INFO] [stderr] 265 | OpReturn, OpToaltStack, OpFromaltstack, Op2Drop, Op2Dup, Op3Dup, Op2Over, Op2Rot, Op2Swap, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Over` [INFO] [stderr] --> src/main.rs:265:70 [INFO] [stderr] | [INFO] [stderr] 265 | OpReturn, OpToaltStack, OpFromaltstack, Op2Drop, Op2Dup, Op3Dup, Op2Over, Op2Rot, Op2Swap, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Rot` [INFO] [stderr] --> src/main.rs:265:79 [INFO] [stderr] | [INFO] [stderr] 265 | OpReturn, OpToaltStack, OpFromaltstack, Op2Drop, Op2Dup, Op3Dup, Op2Over, Op2Rot, Op2Swap, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Swap` [INFO] [stderr] --> src/main.rs:265:87 [INFO] [stderr] | [INFO] [stderr] 265 | OpReturn, OpToaltStack, OpFromaltstack, Op2Drop, Op2Dup, Op3Dup, Op2Over, Op2Rot, Op2Swap, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpIfdup` [INFO] [stderr] --> src/main.rs:266:5 [INFO] [stderr] | [INFO] [stderr] 266 | OpIfdup, OpDepth, OpDrop, OpDup, OpNip, OpOver, OpPick, OpRoll, OpRot, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpOver` [INFO] [stderr] --> src/main.rs:266:45 [INFO] [stderr] | [INFO] [stderr] 266 | OpIfdup, OpDepth, OpDrop, OpDup, OpNip, OpOver, OpPick, OpRoll, OpRot, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpCat` [INFO] [stderr] --> src/main.rs:267:21 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpSubstr` [INFO] [stderr] --> src/main.rs:267:28 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpLeft` [INFO] [stderr] --> src/main.rs:267:38 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpRight` [INFO] [stderr] --> src/main.rs:267:46 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpInvert` [INFO] [stderr] --> src/main.rs:267:63 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpAnd` [INFO] [stderr] --> src/main.rs:267:73 [INFO] [stderr] | [INFO] [stderr] 267 | OpSwap, OpTuck, OpCat, OpSubstr, OpLeft, OpRight, OpSize, OpInvert, OpAnd, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpOr` [INFO] [stderr] --> src/main.rs:268:5 [INFO] [stderr] | [INFO] [stderr] 268 | OpOr, OpXor, OpEqual, OpEqualverify, OpReserved1, OpReserved2, Op1Add, Op1Sub, Op2Mul, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpXor` [INFO] [stderr] --> src/main.rs:268:11 [INFO] [stderr] | [INFO] [stderr] 268 | OpOr, OpXor, OpEqual, OpEqualverify, OpReserved1, OpReserved2, Op1Add, Op1Sub, Op2Mul, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Mul` [INFO] [stderr] --> src/main.rs:268:84 [INFO] [stderr] | [INFO] [stderr] 268 | OpOr, OpXor, OpEqual, OpEqualverify, OpReserved1, OpReserved2, Op1Add, Op1Sub, Op2Mul, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op2Div` [INFO] [stderr] --> src/main.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | Op2Div, OpNegate, OpAbs, OpNot, Op0NotEqual, OpAdd, OpSub, OpMul, OpDiv, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Op0NotEqual` [INFO] [stderr] --> src/main.rs:269:37 [INFO] [stderr] | [INFO] [stderr] 269 | Op2Div, OpNegate, OpAbs, OpNot, Op0NotEqual, OpAdd, OpSub, OpMul, OpDiv, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpMul` [INFO] [stderr] --> src/main.rs:269:64 [INFO] [stderr] | [INFO] [stderr] 269 | Op2Div, OpNegate, OpAbs, OpNot, Op0NotEqual, OpAdd, OpSub, OpMul, OpDiv, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpDiv` [INFO] [stderr] --> src/main.rs:269:71 [INFO] [stderr] | [INFO] [stderr] 269 | Op2Div, OpNegate, OpAbs, OpNot, Op0NotEqual, OpAdd, OpSub, OpMul, OpDiv, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpMod` [INFO] [stderr] --> src/main.rs:270:5 [INFO] [stderr] | [INFO] [stderr] 270 | OpMod, OpLshift, OpRshift, OpBooland, OpBoolor, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpLshift` [INFO] [stderr] --> src/main.rs:270:12 [INFO] [stderr] | [INFO] [stderr] 270 | OpMod, OpLshift, OpRshift, OpBooland, OpBoolor, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpRshift` [INFO] [stderr] --> src/main.rs:270:22 [INFO] [stderr] | [INFO] [stderr] 270 | OpMod, OpLshift, OpRshift, OpBooland, OpBoolor, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpNumequalverify` [INFO] [stderr] --> src/main.rs:271:17 [INFO] [stderr] | [INFO] [stderr] 271 | OpNumequal, OpNumequalverify, OpNumnotequal, OpLessthan, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpNumnotequal` [INFO] [stderr] --> src/main.rs:271:35 [INFO] [stderr] | [INFO] [stderr] 271 | OpNumequal, OpNumequalverify, OpNumnotequal, OpLessthan, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpLessthanorequal` [INFO] [stderr] --> src/main.rs:272:20 [INFO] [stderr] | [INFO] [stderr] 272 | OpGreaterthan, OpLessthanorequal, OpGreaterthanorequal, OpMin, OpMax, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpGreaterthanorequal` [INFO] [stderr] --> src/main.rs:272:39 [INFO] [stderr] | [INFO] [stderr] 272 | OpGreaterthan, OpLessthanorequal, OpGreaterthanorequal, OpMin, OpMax, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpMax` [INFO] [stderr] --> src/main.rs:272:68 [INFO] [stderr] | [INFO] [stderr] 272 | OpGreaterthan, OpLessthanorequal, OpGreaterthanorequal, OpMin, OpMax, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpCodeseparator` [INFO] [stderr] --> src/main.rs:274:16 [INFO] [stderr] | [INFO] [stderr] 274 | OpHash256, OpCodeseparator, OpChecksig, OpChecksigverify, OpCheckmultisig, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpCheckmultisigverify` [INFO] [stderr] --> src/main.rs:275:5 [INFO] [stderr] | [INFO] [stderr] 275 | OpCheckmultisigverify, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OpInvalidopcode` [INFO] [stderr] --> src/main.rs:277:5 [INFO] [stderr] | [INFO] [stderr] 277 | OpInvalidopcode = 0xFF, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | write!(&mut out_file_name, "output_{}.txt", prefix); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | writeln!(&mut writer, "{} {} {}", addr, timevalue.time, timevalue.value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:121:29 [INFO] [stderr] | [INFO] [stderr] 121 | let magic = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:121:48 [INFO] [stderr] | [INFO] [stderr] 121 | let magic = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:121:71 [INFO] [stderr] | [INFO] [stderr] 121 | let magic = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:121:95 [INFO] [stderr] | [INFO] [stderr] 121 | let magic = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | reader.read_exact(&mut buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:129:20 [INFO] [stderr] | [INFO] [stderr] 129 | let size = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:129:39 [INFO] [stderr] | [INFO] [stderr] 129 | let size = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:129:62 [INFO] [stderr] | [INFO] [stderr] 129 | let size = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:129:86 [INFO] [stderr] | [INFO] [stderr] 129 | let size = (buf[0] as u32) | ((buf[1] as u32)<<8) | ((buf[2] as u32)<<16) | ((buf[3] as u32)<<24); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(buf[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:130:41 [INFO] [stderr] | [INFO] [stderr] 130 | read_block(prefix, &mut reader, size as u64, state); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/main.rs:168:37 [INFO] [stderr] | [INFO] [stderr] 168 | / if !state.in_map.contains_key(&id) { [INFO] [stderr] 169 | | state.in_map.insert(id, vec![]); [INFO] [stderr] 170 | | } [INFO] [stderr] | |_____________________________________^ help: consider using: `state.in_map.entry(id).or_insert(< [ _ ] > :: into_vec ( box [ $ ( $ x ) , * ] ))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:350:36 [INFO] [stderr] | [INFO] [stderr] 350 | fn classify_output(decoded_output: &Vec<(u8, Option<&[u8]>)>) -> OutputType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(u8, Option<&[u8]>)]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 146 [INFO] [stderr] --> src/main.rs:350:1 [INFO] [stderr] | [INFO] [stderr] 350 | / fn classify_output(decoded_output: &Vec<(u8, Option<&[u8]>)>) -> OutputType { [INFO] [stderr] 351 | | if decoded_output.len() == 0 { [INFO] [stderr] 352 | | return OutputType::Empty; [INFO] [stderr] 353 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 938 | | return OutputType::Unclassified; [INFO] [stderr] 939 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 146 [INFO] [stderr] --> src/main.rs:350:1 [INFO] [stderr] | [INFO] [stderr] 350 | / fn classify_output(decoded_output: &Vec<(u8, Option<&[u8]>)>) -> OutputType { [INFO] [stderr] 351 | | if decoded_output.len() == 0 { [INFO] [stderr] 352 | | return OutputType::Empty; [INFO] [stderr] 353 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 938 | | return OutputType::Unclassified; [INFO] [stderr] 939 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:351:8 [INFO] [stderr] | [INFO] [stderr] 351 | if decoded_output.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `decoded_output.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stderr] --> src/main.rs:523:99 [INFO] [stderr] | [INFO] [stderr] 523 | decoded_output[15].0 == Opcode::Op14 as u8 && decoded_output[16].0 == 33u8 as u8 && decoded_output[17].0 == Opcode::Op16 as u8 && [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stderr] --> src/main.rs:804:45 [INFO] [stderr] | [INFO] [stderr] 804 | decoded_output[31].0 == 1u8 as u8 && decoded_output[32].0 == Opcode::OpSub as u8 && decoded_output[33].0 == Opcode::OpDup as u8 && [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:956:25 [INFO] [stderr] | [INFO] [stderr] 956 | / match addr { [INFO] [stderr] 957 | | Some(addr_str) => { [INFO] [stderr] 958 | | let to_insert = match last_used.get(&addr_str) { [INFO] [stderr] 959 | | None => true, [INFO] [stderr] ... | [INFO] [stderr] 967 | | None => {} [INFO] [stderr] 968 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 956 | if let Some(addr_str) = addr { [INFO] [stderr] 957 | let to_insert = match last_used.get(&addr_str) { [INFO] [stderr] 958 | None => true, [INFO] [stderr] 959 | Some(prev_timevalue) => time > prev_timevalue.time, [INFO] [stderr] 960 | }; [INFO] [stderr] 961 | if to_insert { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:973:17 [INFO] [stderr] | [INFO] [stderr] 973 | / match addr { [INFO] [stderr] 974 | | Some(addr_str) => { [INFO] [stderr] 975 | | let to_insert = match last_used.get(&addr_str) { [INFO] [stderr] 976 | | None => true, [INFO] [stderr] ... | [INFO] [stderr] 984 | | None => {} [INFO] [stderr] 985 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 973 | if let Some(addr_str) = addr { [INFO] [stderr] 974 | let to_insert = match last_used.get(&addr_str) { [INFO] [stderr] 975 | None => true, [INFO] [stderr] 976 | Some(prev_timevalue) => time > prev_timevalue.time, [INFO] [stderr] 977 | }; [INFO] [stderr] 978 | if to_insert { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/main.rs:996:14 [INFO] [stderr] | [INFO] [stderr] 996 | for i in 0..32 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `buffer32b[..32].clone_from_slice(&id_slice[..32])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1022:6 [INFO] [stderr] | [INFO] [stderr] 1022 | ((slice[pos] as u16) | ((slice[pos+1] as u16)<<8), pos+2) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(slice[pos])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1022:29 [INFO] [stderr] | [INFO] [stderr] 1022 | ((slice[pos] as u16) | ((slice[pos+1] as u16)<<8), pos+2) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1025:6 [INFO] [stderr] | [INFO] [stderr] 1025 | ((slice[pos] as u32) | ((slice[pos+1] as u32)<<8) | ((slice[pos+2] as u32)<<16) | ((slice[pos+3] as u32)<<24), pos+4) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(slice[pos])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1025:29 [INFO] [stderr] | [INFO] [stderr] 1025 | ((slice[pos] as u32) | ((slice[pos+1] as u32)<<8) | ((slice[pos+2] as u32)<<16) | ((slice[pos+3] as u32)<<24), pos+4) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1025:58 [INFO] [stderr] | [INFO] [stderr] 1025 | ((slice[pos] as u32) | ((slice[pos+1] as u32)<<8) | ((slice[pos+2] as u32)<<16) | ((slice[pos+3] as u32)<<24), pos+4) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(slice[pos+2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1025:88 [INFO] [stderr] | [INFO] [stderr] 1025 | ((slice[pos] as u32) | ((slice[pos+1] as u32)<<8) | ((slice[pos+2] as u32)<<16) | ((slice[pos+3] as u32)<<24), pos+4) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(slice[pos+3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1029:6 [INFO] [stderr] | [INFO] [stderr] 1029 | ((slice[pos] as u64) | ((slice[pos+1] as u64)<<8) | ((slice[pos+2] as u64)<<16) | ((slice[pos+3] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1029:29 [INFO] [stderr] | [INFO] [stderr] 1029 | ((slice[pos] as u64) | ((slice[pos+1] as u64)<<8) | ((slice[pos+2] as u64)<<16) | ((slice[pos+3] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1029:58 [INFO] [stderr] | [INFO] [stderr] 1029 | ((slice[pos] as u64) | ((slice[pos+1] as u64)<<8) | ((slice[pos+2] as u64)<<16) | ((slice[pos+3] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1029:88 [INFO] [stderr] | [INFO] [stderr] 1029 | ((slice[pos] as u64) | ((slice[pos+1] as u64)<<8) | ((slice[pos+2] as u64)<<16) | ((slice[pos+3] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1030:10 [INFO] [stderr] | [INFO] [stderr] 1030 | ((slice[pos+4] as u64)<<32) | ((slice[pos+5] as u64)<<40) | ((slice[pos+6] as u64)<<48) | ((slice[pos+7] as u64)<<56), pos+8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+4])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1030:40 [INFO] [stderr] | [INFO] [stderr] 1030 | ((slice[pos+4] as u64)<<32) | ((slice[pos+5] as u64)<<40) | ((slice[pos+6] as u64)<<48) | ((slice[pos+7] as u64)<<56), pos+8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+5])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1030:70 [INFO] [stderr] | [INFO] [stderr] 1030 | ((slice[pos+4] as u64)<<32) | ((slice[pos+5] as u64)<<40) | ((slice[pos+6] as u64)<<48) | ((slice[pos+7] as u64)<<56), pos+8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+6])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1030:100 [INFO] [stderr] | [INFO] [stderr] 1030 | ((slice[pos+4] as u64)<<32) | ((slice[pos+5] as u64)<<40) | ((slice[pos+6] as u64)<<48) | ((slice[pos+7] as u64)<<56), pos+8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+7])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1035:18 [INFO] [stderr] | [INFO] [stderr] 1035 | 0xFD => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8), pos+3), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1035:43 [INFO] [stderr] | [INFO] [stderr] 1035 | 0xFD => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8), pos+3), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1036:18 [INFO] [stderr] | [INFO] [stderr] 1036 | 0xFE => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24), pos+5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1036:43 [INFO] [stderr] | [INFO] [stderr] 1036 | 0xFE => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24), pos+5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1036:72 [INFO] [stderr] | [INFO] [stderr] 1036 | 0xFE => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24), pos+5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1036:102 [INFO] [stderr] | [INFO] [stderr] 1036 | 0xFE => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24), pos+5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+4])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1037:18 [INFO] [stderr] | [INFO] [stderr] 1037 | 0xFF => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1037:43 [INFO] [stderr] | [INFO] [stderr] 1037 | 0xFF => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1037:72 [INFO] [stderr] | [INFO] [stderr] 1037 | 0xFF => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1037:102 [INFO] [stderr] | [INFO] [stderr] 1037 | 0xFF => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+4])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1038:19 [INFO] [stderr] | [INFO] [stderr] 1038 | ((slice[pos+5] as u64)<<32) | ((slice[pos+6] as u64)<<40) | ((slice[pos+7] as u64)<<48) | ((slice[pos+8] as u64)<<56), pos+9), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+5])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1038:49 [INFO] [stderr] | [INFO] [stderr] 1038 | ((slice[pos+5] as u64)<<32) | ((slice[pos+6] as u64)<<40) | ((slice[pos+7] as u64)<<48) | ((slice[pos+8] as u64)<<56), pos+9), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+6])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1038:79 [INFO] [stderr] | [INFO] [stderr] 1038 | ((slice[pos+5] as u64)<<32) | ((slice[pos+6] as u64)<<40) | ((slice[pos+7] as u64)<<48) | ((slice[pos+8] as u64)<<56), pos+9), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+7])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1038:109 [INFO] [stderr] | [INFO] [stderr] 1038 | ((slice[pos+5] as u64)<<32) | ((slice[pos+6] as u64)<<40) | ((slice[pos+7] as u64)<<48) | ((slice[pos+8] as u64)<<56), pos+9), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+8])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1039:15 [INFO] [stderr] | [INFO] [stderr] 1039 | _ => (slice[pos] as u64, pos+1), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/main.rs:1043:35 [INFO] [stderr] | [INFO] [stderr] 1043 | fn decode_script(slice: &[u8]) -> Result)>,String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:1089:41 [INFO] [stderr] | [INFO] [stderr] 1089 | fn public_key_from_hash(decoded_output: &Vec<(u8, Option<&[u8]>)>) -> Option<[u8;25]> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(u8, Option<&[u8]>)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:351:8 [INFO] [stderr] | [INFO] [stderr] 351 | if decoded_output.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `decoded_output.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:1122:12 [INFO] [stderr] | [INFO] [stderr] 1122 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 1123 | | None [INFO] [stderr] 1124 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:1120:64 [INFO] [stderr] | [INFO] [stderr] 1120 | } else if decoded_script[0].0 <= Opcode::OpPushdata4 as u8 { [INFO] [stderr] | ________________________________________________________________^ [INFO] [stderr] 1121 | | None [INFO] [stderr] 1122 | | } else { [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:1101:8 [INFO] [stderr] | [INFO] [stderr] 1101 | if decoded_script.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `decoded_script.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stderr] --> src/main.rs:523:99 [INFO] [stderr] | [INFO] [stderr] 523 | decoded_output[15].0 == Opcode::Op14 as u8 && decoded_output[16].0 == 33u8 as u8 && decoded_output[17].0 == Opcode::Op16 as u8 && [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `parse_bitcoin`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stderr] --> src/main.rs:804:45 [INFO] [stderr] | [INFO] [stderr] 804 | decoded_output[31].0 == 1u8 as u8 && decoded_output[32].0 == Opcode::OpSub as u8 && decoded_output[33].0 == Opcode::OpDup as u8 && [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:956:25 [INFO] [stderr] | [INFO] [stderr] 956 | / match addr { [INFO] [stderr] 957 | | Some(addr_str) => { [INFO] [stderr] 958 | | let to_insert = match last_used.get(&addr_str) { [INFO] [stderr] 959 | | None => true, [INFO] [stderr] ... | [INFO] [stderr] 967 | | None => {} [INFO] [stderr] 968 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 956 | if let Some(addr_str) = addr { [INFO] [stderr] 957 | let to_insert = match last_used.get(&addr_str) { [INFO] [stderr] 958 | None => true, [INFO] [stderr] 959 | Some(prev_timevalue) => time > prev_timevalue.time, [INFO] [stderr] 960 | }; [INFO] [stderr] 961 | if to_insert { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:973:17 [INFO] [stderr] | [INFO] [stderr] 973 | / match addr { [INFO] [stderr] 974 | | Some(addr_str) => { [INFO] [stderr] 975 | | let to_insert = match last_used.get(&addr_str) { [INFO] [stderr] 976 | | None => true, [INFO] [stderr] ... | [INFO] [stderr] 984 | | None => {} [INFO] [stderr] 985 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 973 | if let Some(addr_str) = addr { [INFO] [stderr] 974 | let to_insert = match last_used.get(&addr_str) { [INFO] [stderr] 975 | None => true, [INFO] [stderr] 976 | Some(prev_timevalue) => time > prev_timevalue.time, [INFO] [stderr] 977 | }; [INFO] [stderr] 978 | if to_insert { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/main.rs:996:14 [INFO] [stderr] | [INFO] [stderr] 996 | for i in 0..32 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `buffer32b[..32].clone_from_slice(&id_slice[..32])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1022:6 [INFO] [stderr] | [INFO] [stderr] 1022 | ((slice[pos] as u16) | ((slice[pos+1] as u16)<<8), pos+2) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(slice[pos])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1022:29 [INFO] [stderr] | [INFO] [stderr] 1022 | ((slice[pos] as u16) | ((slice[pos+1] as u16)<<8), pos+2) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1025:6 [INFO] [stderr] | [INFO] [stderr] 1025 | ((slice[pos] as u32) | ((slice[pos+1] as u32)<<8) | ((slice[pos+2] as u32)<<16) | ((slice[pos+3] as u32)<<24), pos+4) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(slice[pos])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1025:29 [INFO] [stderr] | [INFO] [stderr] 1025 | ((slice[pos] as u32) | ((slice[pos+1] as u32)<<8) | ((slice[pos+2] as u32)<<16) | ((slice[pos+3] as u32)<<24), pos+4) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1025:58 [INFO] [stderr] | [INFO] [stderr] 1025 | ((slice[pos] as u32) | ((slice[pos+1] as u32)<<8) | ((slice[pos+2] as u32)<<16) | ((slice[pos+3] as u32)<<24), pos+4) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(slice[pos+2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1025:88 [INFO] [stderr] | [INFO] [stderr] 1025 | ((slice[pos] as u32) | ((slice[pos+1] as u32)<<8) | ((slice[pos+2] as u32)<<16) | ((slice[pos+3] as u32)<<24), pos+4) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(slice[pos+3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1029:6 [INFO] [stderr] | [INFO] [stderr] 1029 | ((slice[pos] as u64) | ((slice[pos+1] as u64)<<8) | ((slice[pos+2] as u64)<<16) | ((slice[pos+3] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1029:29 [INFO] [stderr] | [INFO] [stderr] 1029 | ((slice[pos] as u64) | ((slice[pos+1] as u64)<<8) | ((slice[pos+2] as u64)<<16) | ((slice[pos+3] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1029:58 [INFO] [stderr] | [INFO] [stderr] 1029 | ((slice[pos] as u64) | ((slice[pos+1] as u64)<<8) | ((slice[pos+2] as u64)<<16) | ((slice[pos+3] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1029:88 [INFO] [stderr] | [INFO] [stderr] 1029 | ((slice[pos] as u64) | ((slice[pos+1] as u64)<<8) | ((slice[pos+2] as u64)<<16) | ((slice[pos+3] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1030:10 [INFO] [stderr] | [INFO] [stderr] 1030 | ((slice[pos+4] as u64)<<32) | ((slice[pos+5] as u64)<<40) | ((slice[pos+6] as u64)<<48) | ((slice[pos+7] as u64)<<56), pos+8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+4])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1030:40 [INFO] [stderr] | [INFO] [stderr] 1030 | ((slice[pos+4] as u64)<<32) | ((slice[pos+5] as u64)<<40) | ((slice[pos+6] as u64)<<48) | ((slice[pos+7] as u64)<<56), pos+8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+5])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1030:70 [INFO] [stderr] | [INFO] [stderr] 1030 | ((slice[pos+4] as u64)<<32) | ((slice[pos+5] as u64)<<40) | ((slice[pos+6] as u64)<<48) | ((slice[pos+7] as u64)<<56), pos+8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+6])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1030:100 [INFO] [stderr] | [INFO] [stderr] 1030 | ((slice[pos+4] as u64)<<32) | ((slice[pos+5] as u64)<<40) | ((slice[pos+6] as u64)<<48) | ((slice[pos+7] as u64)<<56), pos+8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+7])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1035:18 [INFO] [stderr] | [INFO] [stderr] 1035 | 0xFD => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8), pos+3), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1035:43 [INFO] [stderr] | [INFO] [stderr] 1035 | 0xFD => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8), pos+3), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1036:18 [INFO] [stderr] | [INFO] [stderr] 1036 | 0xFE => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24), pos+5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1036:43 [INFO] [stderr] | [INFO] [stderr] 1036 | 0xFE => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24), pos+5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1036:72 [INFO] [stderr] | [INFO] [stderr] 1036 | 0xFE => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24), pos+5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1036:102 [INFO] [stderr] | [INFO] [stderr] 1036 | 0xFE => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24), pos+5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+4])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1037:18 [INFO] [stderr] | [INFO] [stderr] 1037 | 0xFF => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1037:43 [INFO] [stderr] | [INFO] [stderr] 1037 | 0xFF => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1037:72 [INFO] [stderr] | [INFO] [stderr] 1037 | 0xFF => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1037:102 [INFO] [stderr] | [INFO] [stderr] 1037 | 0xFF => ((slice[pos+1] as u64) | ((slice[pos+2] as u64)<<8) | ((slice[pos+3] as u64)<<16) | ((slice[pos+4] as u64)<<24) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+4])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1038:19 [INFO] [stderr] | [INFO] [stderr] 1038 | ((slice[pos+5] as u64)<<32) | ((slice[pos+6] as u64)<<40) | ((slice[pos+7] as u64)<<48) | ((slice[pos+8] as u64)<<56), pos+9), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+5])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1038:49 [INFO] [stderr] | [INFO] [stderr] 1038 | ((slice[pos+5] as u64)<<32) | ((slice[pos+6] as u64)<<40) | ((slice[pos+7] as u64)<<48) | ((slice[pos+8] as u64)<<56), pos+9), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+6])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1038:79 [INFO] [stderr] | [INFO] [stderr] 1038 | ((slice[pos+5] as u64)<<32) | ((slice[pos+6] as u64)<<40) | ((slice[pos+7] as u64)<<48) | ((slice[pos+8] as u64)<<56), pos+9), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+7])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1038:109 [INFO] [stderr] | [INFO] [stderr] 1038 | ((slice[pos+5] as u64)<<32) | ((slice[pos+6] as u64)<<40) | ((slice[pos+7] as u64)<<48) | ((slice[pos+8] as u64)<<56), pos+9), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos+8])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:1039:15 [INFO] [stderr] | [INFO] [stderr] 1039 | _ => (slice[pos] as u64, pos+1), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(slice[pos])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/main.rs:1043:35 [INFO] [stderr] | [INFO] [stderr] 1043 | fn decode_script(slice: &[u8]) -> Result)>,String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:1089:41 [INFO] [stderr] | [INFO] [stderr] 1089 | fn public_key_from_hash(decoded_output: &Vec<(u8, Option<&[u8]>)>) -> Option<[u8;25]> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(u8, Option<&[u8]>)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:1122:12 [INFO] [stderr] | [INFO] [stderr] 1122 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 1123 | | None [INFO] [stderr] 1124 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:1120:64 [INFO] [stderr] | [INFO] [stderr] 1120 | } else if decoded_script[0].0 <= Opcode::OpPushdata4 as u8 { [INFO] [stderr] | ________________________________________________________________^ [INFO] [stderr] 1121 | | None [INFO] [stderr] 1122 | | } else { [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:1101:8 [INFO] [stderr] | [INFO] [stderr] 1101 | if decoded_script.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `decoded_script.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `parse_bitcoin`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "c2dacb9c91f8fe7f1c65972796522bfaccd36580155811a0724e9f36f68dc05f"` [INFO] running `"docker" "rm" "-f" "c2dacb9c91f8fe7f1c65972796522bfaccd36580155811a0724e9f36f68dc05f"` [INFO] [stdout] c2dacb9c91f8fe7f1c65972796522bfaccd36580155811a0724e9f36f68dc05f