[INFO] crate miniscript 0.1.0 is already in cache [INFO] extracting crate miniscript 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/miniscript/0.1.0 [INFO] extracting crate miniscript 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/miniscript/0.1.0 [INFO] validating manifest of miniscript-0.1.0 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 miniscript-0.1.0 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 miniscript-0.1.0 [INFO] finished frobbing miniscript-0.1.0 [INFO] frobbed toml for miniscript-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/miniscript/0.1.0/Cargo.toml [INFO] started frobbing miniscript-0.1.0 [INFO] finished frobbing miniscript-0.1.0 [INFO] frobbed toml for miniscript-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/miniscript/0.1.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting miniscript-0.1.0 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/reg/miniscript/0.1.0:/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] 93ac3b4f0429204b758491e58c4afb3eb332e6e863ce619c9d633c9251fe5372 [INFO] running `"docker" "start" "-a" "93ac3b4f0429204b758491e58c4afb3eb332e6e863ce619c9d633c9251fe5372"` [INFO] [stderr] Checking bech32 v0.5.0 [INFO] [stderr] Compiling secp256k1 v0.11.6 [INFO] [stderr] Checking bitcoin-bech32 v0.8.1 [INFO] [stderr] Checking bitcoin v0.15.1 [INFO] [stderr] Checking miniscript v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/policy/compiler.rs:571:21 [INFO] [stderr] | [INFO] [stderr] 571 | pk_cost: pk_cost, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pk_cost` [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/policy/compiler.rs:573:21 [INFO] [stderr] | [INFO] [stderr] 573 | dissat_cost: dissat_cost, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dissat_cost` [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/policy/compiler.rs:802:21 [INFO] [stderr] | [INFO] [stderr] 802 | pk_cost: pk_cost, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pk_cost` [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/policy/compiler.rs:913:21 [INFO] [stderr] | [INFO] [stderr] 913 | pk_cost: pk_cost, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pk_cost` [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/policy/compiler.rs:571:21 [INFO] [stderr] | [INFO] [stderr] 571 | pk_cost: pk_cost, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pk_cost` [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/policy/compiler.rs:573:21 [INFO] [stderr] | [INFO] [stderr] 573 | dissat_cost: dissat_cost, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dissat_cost` [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/policy/compiler.rs:802:21 [INFO] [stderr] | [INFO] [stderr] 802 | pk_cost: pk_cost, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pk_cost` [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/policy/compiler.rs:913:21 [INFO] [stderr] | [INFO] [stderr] 913 | pk_cost: pk_cost, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pk_cost` [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: long literal lacking separators [INFO] [stderr] --> src/policy/compiler.rs:302:20 [INFO] [stderr] | [INFO] [stderr] 302 | } else if n <= 0x1000000 { [INFO] [stderr] | ^^^^^^^^^ help: consider: `0x0100_0000` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/policy/compiler.rs:317:12 [INFO] [stderr] | [INFO] [stderr] 317 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 318 | | if one.sat_cost < two.sat_cost { [INFO] [stderr] 319 | | one [INFO] [stderr] 320 | | } else { [INFO] [stderr] 321 | | two [INFO] [stderr] 322 | | } [INFO] [stderr] 323 | | } [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] 317 | } else if one.sat_cost < two.sat_cost { [INFO] [stderr] 318 | one [INFO] [stderr] 319 | } else { [INFO] [stderr] 320 | two [INFO] [stderr] 321 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/policy/mod.rs:230:28 [INFO] [stderr] | [INFO] [stderr] 230 | return Ok(Policy::Time(0x10000000)) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1000_0000` [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: long literal lacking separators [INFO] [stderr] --> src/policy/compiler.rs:302:20 [INFO] [stderr] | [INFO] [stderr] 302 | } else if n <= 0x1000000 { [INFO] [stderr] | ^^^^^^^^^ help: consider: `0x0100_0000` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/policy/compiler.rs:317:12 [INFO] [stderr] | [INFO] [stderr] 317 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 318 | | if one.sat_cost < two.sat_cost { [INFO] [stderr] 319 | | one [INFO] [stderr] 320 | | } else { [INFO] [stderr] 321 | | two [INFO] [stderr] 322 | | } [INFO] [stderr] 323 | | } [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] 317 | } else if one.sat_cost < two.sat_cost { [INFO] [stderr] 318 | one [INFO] [stderr] 319 | } else { [INFO] [stderr] 320 | two [INFO] [stderr] 321 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/policy/mod.rs:230:28 [INFO] [stderr] | [INFO] [stderr] 230 | return Ok(Policy::Time(0x10000000)) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1000_0000` [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: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:42:15 [INFO] [stderr] | [INFO] [stderr] 42 | fn into_e(self: Box) -> Rc> { panic!("invalid conversion to E") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::boxed_local)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:44:15 [INFO] [stderr] | [INFO] [stderr] 44 | fn into_q(self: Box) -> Rc> { panic!("invalid conversion to Q") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:46:15 [INFO] [stderr] | [INFO] [stderr] 46 | fn into_w(self: Box) -> Rc> { panic!("invalid conversion to W") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:48:15 [INFO] [stderr] | [INFO] [stderr] 48 | fn into_f(self: Box) -> Rc> { panic!("invalid conversion to F") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:50:15 [INFO] [stderr] | [INFO] [stderr] 50 | fn into_v(self: Box) -> Rc> { panic!("invalid conversion to V") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:52:15 [INFO] [stderr] | [INFO] [stderr] 52 | fn into_t(self: Box) -> Rc> { panic!("invalid conversion to T") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/miniscript/astelem.rs:686:34 [INFO] [stderr] | [INFO] [stderr] 686 | .push_int(n as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/miniscript/astelem.rs:809:34 [INFO] [stderr] | [INFO] [stderr] 809 | .push_int(n as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/miniscript/astelem.rs:858:34 [INFO] [stderr] | [INFO] [stderr] 858 | builder.push_int(n as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/miniscript/astelem.rs:938:34 [INFO] [stderr] | [INFO] [stderr] 938 | builder.push_int(n as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/miniscript/astelem.rs:1002:34 [INFO] [stderr] | [INFO] [stderr] 1002 | builder.push_int(n as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/miniscript/satisfy.rs:601:35 [INFO] [stderr] | [INFO] [stderr] 601 | let mut indices: Vec = (0..1 + subw.len()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `(0..=subw.len())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/expression.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / pub fn from_str(s: &'a str) -> Result, Error> { [INFO] [stderr] 93 | | // Filter out non-ASCII because we byte-index strings all over the [INFO] [stderr] 94 | | // place and Rust gets very upset when you splinch a string. [INFO] [stderr] 95 | | for ch in s.bytes() { [INFO] [stderr] ... | [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | pub best_e: RefCell>>>, [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:52:17 [INFO] [stderr] | [INFO] [stderr] 52 | pub best_q: RefCell>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | pub best_w: RefCell>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | pub best_f: RefCell>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:55:17 [INFO] [stderr] | [INFO] [stderr] 55 | pub best_v: RefCell>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:56:17 [INFO] [stderr] | [INFO] [stderr] 56 | pub best_t: RefCell>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/policy/compiler.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | debug_assert_eq!(lweight + rweight, 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/policy/compiler.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | debug_assert_eq!(lweight + rweight, 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/policy/compiler.rs:392:80 [INFO] [stderr] | [INFO] [stderr] 392 | Policy::Hash(ref hash) => ret.content = CompiledNodeContent::Hash(hash.clone()), [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*hash` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:42:15 [INFO] [stderr] | [INFO] [stderr] 42 | fn into_e(self: Box) -> Rc> { panic!("invalid conversion to E") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::boxed_local)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:44:15 [INFO] [stderr] | [INFO] [stderr] 44 | fn into_q(self: Box) -> Rc> { panic!("invalid conversion to Q") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:46:15 [INFO] [stderr] | [INFO] [stderr] 46 | fn into_w(self: Box) -> Rc> { panic!("invalid conversion to W") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:48:15 [INFO] [stderr] | [INFO] [stderr] 48 | fn into_f(self: Box) -> Rc> { panic!("invalid conversion to F") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:50:15 [INFO] [stderr] | [INFO] [stderr] 50 | fn into_v(self: Box) -> Rc> { panic!("invalid conversion to V") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/miniscript/astelem.rs:52:15 [INFO] [stderr] | [INFO] [stderr] 52 | fn into_t(self: Box) -> Rc> { panic!("invalid conversion to T") } [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/policy/compiler.rs:592:9 [INFO] [stderr] | [INFO] [stderr] 592 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/policy/compiler.rs:592:9 [INFO] [stderr] | [INFO] [stderr] 592 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/policy/compiler.rs:697:9 [INFO] [stderr] | [INFO] [stderr] 697 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/policy/compiler.rs:697:9 [INFO] [stderr] | [INFO] [stderr] 697 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/policy/compiler.rs:812:9 [INFO] [stderr] | [INFO] [stderr] 812 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/policy/compiler.rs:812:9 [INFO] [stderr] | [INFO] [stderr] 812 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/policy/compiler.rs:923:9 [INFO] [stderr] | [INFO] [stderr] 923 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/policy/compiler.rs:923:9 [INFO] [stderr] | [INFO] [stderr] 923 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/policy/compiler.rs:941:64 [INFO] [stderr] | [INFO] [stderr] 941 | let num_cost = script::Builder::new().push_int(n as i64).into_script().len(); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/policy/mod.rs:81:52 [INFO] [stderr] | [INFO] [stderr] 81 | Policy::Hash(ref h) => Ok(Policy::Hash(h.clone())), [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*h` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:44:23 [INFO] [stderr] | [INFO] [stderr] 44 | pub static NO_HASHES: Option<&'static fn(Sha256dHash) -> Option<[u8; 32]>> = None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: aborting due to 5 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `miniscript`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/miniscript/astelem.rs:686:34 [INFO] [stderr] | [INFO] [stderr] 686 | .push_int(n as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/miniscript/astelem.rs:809:34 [INFO] [stderr] | [INFO] [stderr] 809 | .push_int(n as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/miniscript/astelem.rs:858:34 [INFO] [stderr] | [INFO] [stderr] 858 | builder.push_int(n as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/miniscript/astelem.rs:938:34 [INFO] [stderr] | [INFO] [stderr] 938 | builder.push_int(n as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/miniscript/astelem.rs:1002:34 [INFO] [stderr] | [INFO] [stderr] 1002 | builder.push_int(n as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/miniscript/satisfy.rs:601:35 [INFO] [stderr] | [INFO] [stderr] 601 | let mut indices: Vec = (0..1 + subw.len()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `(0..=subw.len())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/miniscript/mod.rs:145:18 [INFO] [stderr] | [INFO] [stderr] 145 | for i in 1..n+1 { [INFO] [stderr] | ^^^^^^ help: use: `1..=n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/miniscript/mod.rs:171:46 [INFO] [stderr] | [INFO] [stderr] 171 | &Miniscript(T::CastE(E::CheckSig(keys[0].clone()))), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `keys[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/miniscript/mod.rs:227:37 [INFO] [stderr] | [INFO] [stderr] 227 | Rc::new(V::CheckSig(keys[0].clone())), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `keys[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/miniscript/mod.rs:229:41 [INFO] [stderr] | [INFO] [stderr] 229 | Rc::new(V::CheckSig(keys[1].clone())), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `keys[1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/miniscript/mod.rs:230:41 [INFO] [stderr] | [INFO] [stderr] 230 | Rc::new(V::CheckSig(keys[2].clone())), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `keys[2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/miniscript/mod.rs:264:37 [INFO] [stderr] | [INFO] [stderr] 264 | Rc::new(W::CheckSig(keys[0].clone())), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `keys[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/expression.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / pub fn from_str(s: &'a str) -> Result, Error> { [INFO] [stderr] 93 | | // Filter out non-ASCII because we byte-index strings all over the [INFO] [stderr] 94 | | // place and Rust gets very upset when you splinch a string. [INFO] [stderr] 95 | | for ch in s.bytes() { [INFO] [stderr] ... | [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | pub best_e: RefCell>>>, [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:52:17 [INFO] [stderr] | [INFO] [stderr] 52 | pub best_q: RefCell>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | pub best_w: RefCell>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | pub best_f: RefCell>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:55:17 [INFO] [stderr] | [INFO] [stderr] 55 | pub best_v: RefCell>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/policy/compiler.rs:56:17 [INFO] [stderr] | [INFO] [stderr] 56 | pub best_t: RefCell>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/policy/compiler.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | debug_assert_eq!(lweight + rweight, 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/policy/compiler.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | debug_assert_eq!(lweight + rweight, 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/policy/compiler.rs:392:80 [INFO] [stderr] | [INFO] [stderr] 392 | Policy::Hash(ref hash) => ret.content = CompiledNodeContent::Hash(hash.clone()), [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*hash` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/policy/compiler.rs:592:9 [INFO] [stderr] | [INFO] [stderr] 592 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/policy/compiler.rs:592:9 [INFO] [stderr] | [INFO] [stderr] 592 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/policy/compiler.rs:697:9 [INFO] [stderr] | [INFO] [stderr] 697 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/policy/compiler.rs:697:9 [INFO] [stderr] | [INFO] [stderr] 697 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/policy/compiler.rs:812:9 [INFO] [stderr] | [INFO] [stderr] 812 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/policy/compiler.rs:812:9 [INFO] [stderr] | [INFO] [stderr] 812 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/policy/compiler.rs:923:9 [INFO] [stderr] | [INFO] [stderr] 923 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/policy/compiler.rs:923:9 [INFO] [stderr] | [INFO] [stderr] 923 | debug_assert_eq!(p_dissat, 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/policy/compiler.rs:941:64 [INFO] [stderr] | [INFO] [stderr] 941 | let num_cost = script::Builder::new().push_int(n as i64).into_script().len(); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(n)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/policy/mod.rs:81:52 [INFO] [stderr] | [INFO] [stderr] 81 | Policy::Hash(ref h) => Ok(Policy::Hash(h.clone())), [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*h` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/policy/mod.rs:292:18 [INFO] [stderr] | [INFO] [stderr] 292 | for i in 1..n+1 { [INFO] [stderr] | ^^^^^^ help: use: `1..=n` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/policy/mod.rs:317:34 [INFO] [stderr] | [INFO] [stderr] 317 | let policy = Policy::Key(keys[0].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `keys[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/policy/mod.rs:391:54 [INFO] [stderr] | [INFO] [stderr] 391 | let keyfn = |_: &secp256k1::PublicKey| Some((sig.clone(), Some(SigHashType::All))); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `sig` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/policy/mod.rs:396:34 [INFO] [stderr] | [INFO] [stderr] 396 | return Some((sig.clone(), Some(SigHashType::All))); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `sig` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:44:23 [INFO] [stderr] | [INFO] [stderr] 44 | pub static NO_HASHES: Option<&'static fn(Sha256dHash) -> Option<[u8; 32]>> = None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: aborting due to 5 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `miniscript`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "93ac3b4f0429204b758491e58c4afb3eb332e6e863ce619c9d633c9251fe5372"` [INFO] running `"docker" "rm" "-f" "93ac3b4f0429204b758491e58c4afb3eb332e6e863ce619c9d633c9251fe5372"` [INFO] [stdout] 93ac3b4f0429204b758491e58c4afb3eb332e6e863ce619c9d633c9251fe5372