[INFO] cloning repository https://github.com/0xZaddyy/Rust-bitcoin
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/0xZaddyy/Rust-bitcoin" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xZaddyy%2FRust-bitcoin", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xZaddyy%2FRust-bitcoin'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3722e2557a0ddeb711698891524080a76842f38e
[INFO] checking 0xZaddyy/Rust-bitcoin against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xZaddyy%2FRust-bitcoin" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/0xZaddyy/Rust-bitcoin
[INFO] finished tweaking git repo https://github.com/0xZaddyy/Rust-bitcoin
[INFO] tweaked toml for git repo https://github.com/0xZaddyy/Rust-bitcoin written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/0xZaddyy/Rust-bitcoin on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 47 packages to highest compatible versions
[INFO] [stderr]       Adding base64 v0.22.1 (available: v0.23.1)
[INFO] [stderr]       Adding bech32 v0.11.1 (available: v0.12.0)
[INFO] [stderr]       Adding bincode v1.3.3 (available: v3.0.0)
[INFO] [stderr]       Adding hex-conservative v0.3.2 (available: v1.3.0)
[INFO] [stderr]       Adding secp256k1 v0.30.0 (available: v0.33.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f298021b45a101be01629725eac00593702dc4769f3ce4b3c2879e22cc2becaf
[INFO] running `Command { std: "docker" "start" "f298021b45a101be01629725eac00593702dc4769f3ce4b3c2879e22cc2becaf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f298021b45a101be01629725eac00593702dc4769f3ce4b3c2879e22cc2becaf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f298021b45a101be01629725eac00593702dc4769f3ce4b3c2879e22cc2becaf" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f298021b45a101be01629725eac00593702dc4769f3ce4b3c2879e22cc2becaf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f298021b45a101be01629725eac00593702dc4769f3ce4b3c2879e22cc2becaf" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]     Checking arrayvec v0.7.8
[INFO] [stderr]    Compiling serde_json v1.0.154
[INFO] [stderr]    Compiling bitcoin-internals v0.4.0 (/opt/rustwide/workdir/internals)
[INFO] [stderr]     Checking arbitrary v1.5.0
[INFO] [stderr]    Compiling libc v0.2.191
[INFO] [stderr]    Compiling bitcoin-io v0.1.101
[INFO] [stderr]     Checking bech32 v0.11.1
[INFO] [stderr]    Compiling honggfuzz v0.5.62
[INFO] [stderr]    Compiling cc v1.10.0
[INFO] [stderr]     Checking zerocopy v0.8.63
[INFO] [stderr]     Checking semver v1.0.28
[INFO] [stderr]    Compiling hex_lit v0.1.1
[INFO] [stderr]     Checking bitcoin-addresses v0.0.0 (/opt/rustwide/workdir/addresses)
[INFO] [stderr]     Checking hex-conservative v0.2.3
[INFO] [stderr]     Checking chacha20-poly1305 v0.1.2 (/opt/rustwide/workdir/chacha20_poly1305)
[INFO] [stderr]     Checking rustc_version v0.4.1
[INFO] [stderr]     Checking bitcoin_hashes v0.14.101
[INFO] [stderr]    Compiling syn v3.0.9
[INFO] [stderr]    Compiling secp256k1-sys v0.10.1
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.8
[INFO] [stderr]     Checking hex-conservative v0.3.2
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking serde_test v1.0.177
[INFO] [stderr]     Checking secp256k1 v0.30.0
[INFO] [stderr]     Checking bitcoin_hashes v0.16.0 (/opt/rustwide/workdir/hashes)
[INFO] [stderr]     Checking consensus-encoding v0.0.0 (/opt/rustwide/workdir/consensus_encoding)
[INFO] [stderr]     Checking bitcoin-io v0.2.0 (/opt/rustwide/workdir/io)
[INFO] [stderr]     Checking base58ck v0.2.0 (/opt/rustwide/workdir/base58)
[INFO] [stdout] warning: unused import: `impl_write`
[INFO] [stdout]   --> io/src/hash.rs:33:16
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) use impl_write;
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `impl_write`
[INFO] [stdout]   --> io/src/hash.rs:33:16
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) use impl_write;
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking bitcoin-units v1.0.0-rc.0 (/opt/rustwide/workdir/units)
[INFO] [stderr]     Checking bitcoin-primitives v0.101.0 (/opt/rustwide/workdir/primitives)
[INFO] [stdout] warning: use of function `core::char::from_u32` that will be deprecated in a future Rust version: replaced by the `from_u32` method on `char`
[INFO] [stdout]    --> primitives/src/witness.rs:475:47
[INFO] [stdout]     |
[INFO] [stdout] 475 | ...                   match core::char::from_u32(e.invalid_char().into()) {
[INFO] [stdout]     |                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> primitives/src/lib.rs:20:9
[INFO] [stdout]     |
[INFO] [stdout]  20 | #![warn(deprecated_in_future)]
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of function `core::char::from_u32` that will be deprecated in a future Rust version: replaced by the `from_u32` method on `char`
[INFO] [stdout]    --> primitives/src/witness.rs:475:47
[INFO] [stdout]     |
[INFO] [stdout] 475 | ...                   match core::char::from_u32(e.invalid_char().into()) {
[INFO] [stdout]     |                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> primitives/src/lib.rs:20:9
[INFO] [stdout]     |
[INFO] [stdout]  20 | #![warn(deprecated_in_future)]
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking bitcoin v0.33.0-alpha.0 (/opt/rustwide/workdir/bitcoin)
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 266 | |                     self.non_witness_utxo <= <raw_key: _>|<raw_value: Transaction>
[INFO] [stdout] 267 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 266 | |                     self.non_witness_utxo <= <raw_key: _>|<raw_value: Transaction>
[INFO] [stdout] 267 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:270:17
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 271 | |                     self.witness_utxo <= <raw_key: _>|<raw_value: TxOut>
[INFO] [stdout] 272 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:270:17
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 271 | |                     self.witness_utxo <= <raw_key: _>|<raw_value: TxOut>
[INFO] [stdout] 272 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:275:17
[INFO] [stdout]     |
[INFO] [stdout] 275 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 276 | |                     self.partial_sigs <= <raw_key: PublicKey>|<raw_value: ecdsa::Signature>
[INFO] [stdout] 277 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:275:17
[INFO] [stdout]     |
[INFO] [stdout] 275 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 276 | |                     self.partial_sigs <= <raw_key: PublicKey>|<raw_value: ecdsa::Signature>
[INFO] [stdout] 277 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:280:17
[INFO] [stdout]     |
[INFO] [stdout] 280 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 281 | |                     self.sighash_type <= <raw_key: _>|<raw_value: PsbtSighashType>
[INFO] [stdout] 282 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:280:17
[INFO] [stdout]     |
[INFO] [stdout] 280 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 281 | |                     self.sighash_type <= <raw_key: _>|<raw_value: PsbtSighashType>
[INFO] [stdout] 282 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:285:17
[INFO] [stdout]     |
[INFO] [stdout] 285 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 286 | |                     self.redeem_script <= <raw_key: _>|<raw_value: RedeemScriptBuf>
[INFO] [stdout] 287 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:285:17
[INFO] [stdout]     |
[INFO] [stdout] 285 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 286 | |                     self.redeem_script <= <raw_key: _>|<raw_value: RedeemScriptBuf>
[INFO] [stdout] 287 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:290:17
[INFO] [stdout]     |
[INFO] [stdout] 290 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 291 | |                     self.witness_script <= <raw_key: _>|<raw_value: WitnessScriptBuf>
[INFO] [stdout] 292 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:290:17
[INFO] [stdout]     |
[INFO] [stdout] 290 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 291 | |                     self.witness_script <= <raw_key: _>|<raw_value: WitnessScriptBuf>
[INFO] [stdout] 292 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:295:17
[INFO] [stdout]     |
[INFO] [stdout] 295 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 296 | |                     self.bip32_derivation <= <raw_key: secp256k1::PublicKey>|<raw_value: KeySource>
[INFO] [stdout] 297 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:295:17
[INFO] [stdout]     |
[INFO] [stdout] 295 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 296 | |                     self.bip32_derivation <= <raw_key: secp256k1::PublicKey>|<raw_value: KeySource>
[INFO] [stdout] 297 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:300:17
[INFO] [stdout]     |
[INFO] [stdout] 300 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 301 | |                     self.final_script_sig <= <raw_key: _>|<raw_value: ScriptSigBuf>
[INFO] [stdout] 302 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:300:17
[INFO] [stdout]     |
[INFO] [stdout] 300 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 301 | |                     self.final_script_sig <= <raw_key: _>|<raw_value: ScriptSigBuf>
[INFO] [stdout] 302 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:305:17
[INFO] [stdout]     |
[INFO] [stdout] 305 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 306 | |                     self.final_script_witness <= <raw_key: _>|<raw_value: Witness>
[INFO] [stdout] 307 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:305:17
[INFO] [stdout]     |
[INFO] [stdout] 305 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 306 | |                     self.final_script_witness <= <raw_key: _>|<raw_value: Witness>
[INFO] [stdout] 307 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:330:17
[INFO] [stdout]     |
[INFO] [stdout] 330 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 331 | |                     self.tap_key_sig <= <raw_key: _>|<raw_value: taproot::Signature>
[INFO] [stdout] 332 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:330:17
[INFO] [stdout]     |
[INFO] [stdout] 330 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 331 | |                     self.tap_key_sig <= <raw_key: _>|<raw_value: taproot::Signature>
[INFO] [stdout] 332 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:335:17
[INFO] [stdout]     |
[INFO] [stdout] 335 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 336 | |                     self.tap_script_sigs <= <raw_key: (XOnlyPublicKey, TapLeafHash)>|<raw_value: taproot::Signature>
[INFO] [stdout] 337 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:335:17
[INFO] [stdout]     |
[INFO] [stdout] 335 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 336 | |                     self.tap_script_sigs <= <raw_key: (XOnlyPublicKey, TapLeafHash)>|<raw_value: taproot::Signature>
[INFO] [stdout] 337 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:340:17
[INFO] [stdout]     |
[INFO] [stdout] 340 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 341 | |                     self.tap_scripts <= <raw_key: ControlBlock>|< raw_value: (TapScriptBuf, LeafVersion)>
[INFO] [stdout] 342 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:340:17
[INFO] [stdout]     |
[INFO] [stdout] 340 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 341 | |                     self.tap_scripts <= <raw_key: ControlBlock>|< raw_value: (TapScriptBuf, LeafVersion)>
[INFO] [stdout] 342 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:345:17
[INFO] [stdout]     |
[INFO] [stdout] 345 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 346 | |                     self.tap_key_origins <= <raw_key: XOnlyPublicKey>|< raw_value: (Vec<TapLeafHash>, KeySource)>
[INFO] [stdout] 347 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:345:17
[INFO] [stdout]     |
[INFO] [stdout] 345 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 346 | |                     self.tap_key_origins <= <raw_key: XOnlyPublicKey>|< raw_value: (Vec<TapLeafHash>, KeySource)>
[INFO] [stdout] 347 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:350:17
[INFO] [stdout]     |
[INFO] [stdout] 350 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 351 | |                     self.tap_internal_key <= <raw_key: _>|< raw_value: XOnlyPublicKey>
[INFO] [stdout] 352 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:350:17
[INFO] [stdout]     |
[INFO] [stdout] 350 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 351 | |                     self.tap_internal_key <= <raw_key: _>|< raw_value: XOnlyPublicKey>
[INFO] [stdout] 352 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:355:17
[INFO] [stdout]     |
[INFO] [stdout] 355 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 356 | |                     self.tap_merkle_root <= <raw_key: _>|< raw_value: TapNodeHash>
[INFO] [stdout] 357 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:355:17
[INFO] [stdout]     |
[INFO] [stdout] 355 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 356 | |                     self.tap_merkle_root <= <raw_key: _>|< raw_value: TapNodeHash>
[INFO] [stdout] 357 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:360:17
[INFO] [stdout]     |
[INFO] [stdout] 360 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 361 | |                     self.musig2_participant_pubkeys <= <raw_key: secp256k1::PublicKey>|< raw_value: Vec<secp256k1::PublicKey> >
[INFO] [stdout] 362 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:360:17
[INFO] [stdout]     |
[INFO] [stdout] 360 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 361 | |                     self.musig2_participant_pubkeys <= <raw_key: secp256k1::PublicKey>|< raw_value: Vec<secp256k1::PublicKey> >
[INFO] [stdout] 362 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 60 | |                     self.redeem_script <= <raw_key: _>|<raw_value: RedeemScriptBuf>
[INFO] [stdout] 61 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 60 | |                     self.redeem_script <= <raw_key: _>|<raw_value: RedeemScriptBuf>
[INFO] [stdout] 61 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 65 | |                     self.witness_script <= <raw_key: _>|<raw_value: WitnessScriptBuf>
[INFO] [stdout] 66 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 65 | |                     self.witness_script <= <raw_key: _>|<raw_value: WitnessScriptBuf>
[INFO] [stdout] 66 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:69:17
[INFO] [stdout]     |
[INFO] [stdout]  69 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  70 | |                     self.bip32_derivation <= <raw_key: secp256k1::PublicKey>|<raw_value: KeySource>
[INFO] [stdout]  71 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:69:17
[INFO] [stdout]     |
[INFO] [stdout]  69 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  70 | |                     self.bip32_derivation <= <raw_key: secp256k1::PublicKey>|<raw_value: KeySource>
[INFO] [stdout]  71 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 84 | |                     self.tap_internal_key <= <raw_key: _>|<raw_value: XOnlyPublicKey>
[INFO] [stdout] 85 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 84 | |                     self.tap_internal_key <= <raw_key: _>|<raw_value: XOnlyPublicKey>
[INFO] [stdout] 85 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 89 | |                     self.tap_tree <= <raw_key: _>|<raw_value: TapTree>
[INFO] [stdout] 90 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 89 | |                     self.tap_tree <= <raw_key: _>|<raw_value: TapTree>
[INFO] [stdout] 90 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:93:17
[INFO] [stdout]     |
[INFO] [stdout]  93 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  94 | |                     self.tap_key_origins <= <raw_key: XOnlyPublicKey>|< raw_value: (Vec<TapLeafHash>, KeySource)>
[INFO] [stdout]  95 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:93:17
[INFO] [stdout]     |
[INFO] [stdout]  93 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  94 | |                     self.tap_key_origins <= <raw_key: XOnlyPublicKey>|< raw_value: (Vec<TapLeafHash>, KeySource)>
[INFO] [stdout]  95 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:98:17
[INFO] [stdout]     |
[INFO] [stdout]  98 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  99 | |                     self.musig2_participant_pubkeys <= <raw_key: secp256k1::PublicKey>|< raw_value: Vec<secp256k1::PublicKey> >
[INFO] [stdout] 100 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:98:17
[INFO] [stdout]     |
[INFO] [stdout]  98 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  99 | |                     self.musig2_participant_pubkeys <= <raw_key: secp256k1::PublicKey>|< raw_value: Vec<secp256k1::PublicKey> >
[INFO] [stdout] 100 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `bitcoin` (lib) due to 46 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `internals::ToU64`
[INFO] [stdout]    --> bitcoin/src/blockdata/block.rs:539:9
[INFO] [stdout]     |
[INFO] [stdout] 539 |     use internals::ToU64 as _;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 266 | |                     self.non_witness_utxo <= <raw_key: _>|<raw_value: Transaction>
[INFO] [stdout] 267 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 266 | |                     self.non_witness_utxo <= <raw_key: _>|<raw_value: Transaction>
[INFO] [stdout] 267 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:270:17
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 271 | |                     self.witness_utxo <= <raw_key: _>|<raw_value: TxOut>
[INFO] [stdout] 272 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:270:17
[INFO] [stdout]     |
[INFO] [stdout] 270 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 271 | |                     self.witness_utxo <= <raw_key: _>|<raw_value: TxOut>
[INFO] [stdout] 272 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:275:17
[INFO] [stdout]     |
[INFO] [stdout] 275 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 276 | |                     self.partial_sigs <= <raw_key: PublicKey>|<raw_value: ecdsa::Signature>
[INFO] [stdout] 277 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:275:17
[INFO] [stdout]     |
[INFO] [stdout] 275 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 276 | |                     self.partial_sigs <= <raw_key: PublicKey>|<raw_value: ecdsa::Signature>
[INFO] [stdout] 277 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:280:17
[INFO] [stdout]     |
[INFO] [stdout] 280 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 281 | |                     self.sighash_type <= <raw_key: _>|<raw_value: PsbtSighashType>
[INFO] [stdout] 282 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:280:17
[INFO] [stdout]     |
[INFO] [stdout] 280 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 281 | |                     self.sighash_type <= <raw_key: _>|<raw_value: PsbtSighashType>
[INFO] [stdout] 282 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:285:17
[INFO] [stdout]     |
[INFO] [stdout] 285 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 286 | |                     self.redeem_script <= <raw_key: _>|<raw_value: RedeemScriptBuf>
[INFO] [stdout] 287 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:285:17
[INFO] [stdout]     |
[INFO] [stdout] 285 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 286 | |                     self.redeem_script <= <raw_key: _>|<raw_value: RedeemScriptBuf>
[INFO] [stdout] 287 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:290:17
[INFO] [stdout]     |
[INFO] [stdout] 290 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 291 | |                     self.witness_script <= <raw_key: _>|<raw_value: WitnessScriptBuf>
[INFO] [stdout] 292 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:290:17
[INFO] [stdout]     |
[INFO] [stdout] 290 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 291 | |                     self.witness_script <= <raw_key: _>|<raw_value: WitnessScriptBuf>
[INFO] [stdout] 292 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:295:17
[INFO] [stdout]     |
[INFO] [stdout] 295 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 296 | |                     self.bip32_derivation <= <raw_key: secp256k1::PublicKey>|<raw_value: KeySource>
[INFO] [stdout] 297 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:295:17
[INFO] [stdout]     |
[INFO] [stdout] 295 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 296 | |                     self.bip32_derivation <= <raw_key: secp256k1::PublicKey>|<raw_value: KeySource>
[INFO] [stdout] 297 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:300:17
[INFO] [stdout]     |
[INFO] [stdout] 300 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 301 | |                     self.final_script_sig <= <raw_key: _>|<raw_value: ScriptSigBuf>
[INFO] [stdout] 302 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:300:17
[INFO] [stdout]     |
[INFO] [stdout] 300 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 301 | |                     self.final_script_sig <= <raw_key: _>|<raw_value: ScriptSigBuf>
[INFO] [stdout] 302 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:305:17
[INFO] [stdout]     |
[INFO] [stdout] 305 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 306 | |                     self.final_script_witness <= <raw_key: _>|<raw_value: Witness>
[INFO] [stdout] 307 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:305:17
[INFO] [stdout]     |
[INFO] [stdout] 305 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 306 | |                     self.final_script_witness <= <raw_key: _>|<raw_value: Witness>
[INFO] [stdout] 307 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:330:17
[INFO] [stdout]     |
[INFO] [stdout] 330 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 331 | |                     self.tap_key_sig <= <raw_key: _>|<raw_value: taproot::Signature>
[INFO] [stdout] 332 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:330:17
[INFO] [stdout]     |
[INFO] [stdout] 330 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 331 | |                     self.tap_key_sig <= <raw_key: _>|<raw_value: taproot::Signature>
[INFO] [stdout] 332 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:335:17
[INFO] [stdout]     |
[INFO] [stdout] 335 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 336 | |                     self.tap_script_sigs <= <raw_key: (XOnlyPublicKey, TapLeafHash)>|<raw_value: taproot::Signature>
[INFO] [stdout] 337 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:335:17
[INFO] [stdout]     |
[INFO] [stdout] 335 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 336 | |                     self.tap_script_sigs <= <raw_key: (XOnlyPublicKey, TapLeafHash)>|<raw_value: taproot::Signature>
[INFO] [stdout] 337 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:340:17
[INFO] [stdout]     |
[INFO] [stdout] 340 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 341 | |                     self.tap_scripts <= <raw_key: ControlBlock>|< raw_value: (TapScriptBuf, LeafVersion)>
[INFO] [stdout] 342 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:340:17
[INFO] [stdout]     |
[INFO] [stdout] 340 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 341 | |                     self.tap_scripts <= <raw_key: ControlBlock>|< raw_value: (TapScriptBuf, LeafVersion)>
[INFO] [stdout] 342 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:345:17
[INFO] [stdout]     |
[INFO] [stdout] 345 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 346 | |                     self.tap_key_origins <= <raw_key: XOnlyPublicKey>|< raw_value: (Vec<TapLeafHash>, KeySource)>
[INFO] [stdout] 347 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:345:17
[INFO] [stdout]     |
[INFO] [stdout] 345 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 346 | |                     self.tap_key_origins <= <raw_key: XOnlyPublicKey>|< raw_value: (Vec<TapLeafHash>, KeySource)>
[INFO] [stdout] 347 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:350:17
[INFO] [stdout]     |
[INFO] [stdout] 350 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 351 | |                     self.tap_internal_key <= <raw_key: _>|< raw_value: XOnlyPublicKey>
[INFO] [stdout] 352 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:350:17
[INFO] [stdout]     |
[INFO] [stdout] 350 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 351 | |                     self.tap_internal_key <= <raw_key: _>|< raw_value: XOnlyPublicKey>
[INFO] [stdout] 352 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:355:17
[INFO] [stdout]     |
[INFO] [stdout] 355 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 356 | |                     self.tap_merkle_root <= <raw_key: _>|< raw_value: TapNodeHash>
[INFO] [stdout] 357 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout]  95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:355:17
[INFO] [stdout]     |
[INFO] [stdout] 355 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 356 | |                     self.tap_merkle_root <= <raw_key: _>|< raw_value: TapNodeHash>
[INFO] [stdout] 357 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:360:17
[INFO] [stdout]     |
[INFO] [stdout] 360 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 361 | |                     self.musig2_participant_pubkeys <= <raw_key: secp256k1::PublicKey>|< raw_value: Vec<secp256k1::PublicKey> >
[INFO] [stdout] 362 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/input.rs:360:17
[INFO] [stdout]     |
[INFO] [stdout] 360 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 361 | |                     self.musig2_participant_pubkeys <= <raw_key: secp256k1::PublicKey>|< raw_value: Vec<secp256k1::PublicKey> >
[INFO] [stdout] 362 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 60 | |                     self.redeem_script <= <raw_key: _>|<raw_value: RedeemScriptBuf>
[INFO] [stdout] 61 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 60 | |                     self.redeem_script <= <raw_key: _>|<raw_value: RedeemScriptBuf>
[INFO] [stdout] 61 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 65 | |                     self.witness_script <= <raw_key: _>|<raw_value: WitnessScriptBuf>
[INFO] [stdout] 66 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 65 | |                     self.witness_script <= <raw_key: _>|<raw_value: WitnessScriptBuf>
[INFO] [stdout] 66 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:69:17
[INFO] [stdout]     |
[INFO] [stdout]  69 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  70 | |                     self.bip32_derivation <= <raw_key: secp256k1::PublicKey>|<raw_value: KeySource>
[INFO] [stdout]  71 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:69:17
[INFO] [stdout]     |
[INFO] [stdout]  69 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  70 | |                     self.bip32_derivation <= <raw_key: secp256k1::PublicKey>|<raw_value: KeySource>
[INFO] [stdout]  71 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 84 | |                     self.tap_internal_key <= <raw_key: _>|<raw_value: XOnlyPublicKey>
[INFO] [stdout] 85 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 84 | |                     self.tap_internal_key <= <raw_key: _>|<raw_value: XOnlyPublicKey>
[INFO] [stdout] 85 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:92:28
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 92 |                   return Err($crate::psbt::Error::DuplicateKey($raw_key).into());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 89 | |                     self.tap_tree <= <raw_key: _>|<raw_value: TapTree>
[INFO] [stdout] 90 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]   --> bitcoin/src/psbt/macros.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 95 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: bitcoin/src/psbt/map/output.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 | /                 impl_psbt_insert_pair! {
[INFO] [stdout] 89 | |                     self.tap_tree <= <raw_key: _>|<raw_value: TapTree>
[INFO] [stdout] 90 | |                 }
[INFO] [stdout]    | |_________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:93:17
[INFO] [stdout]     |
[INFO] [stdout]  93 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  94 | |                     self.tap_key_origins <= <raw_key: XOnlyPublicKey>|< raw_value: (Vec<TapLeafHash>, KeySource)>
[INFO] [stdout]  95 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:93:17
[INFO] [stdout]     |
[INFO] [stdout]  93 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  94 | |                     self.tap_key_origins <= <raw_key: XOnlyPublicKey>|< raw_value: (Vec<TapLeafHash>, KeySource)>
[INFO] [stdout]  95 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:106:78
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 106 |                   $crate::prelude::btree_map::Entry::Occupied(_) => return Err($crate::psbt::Error::DuplicateKey($raw_key).into()),
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:98:17
[INFO] [stdout]     |
[INFO] [stdout]  98 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  99 | |                     self.musig2_participant_pubkeys <= <raw_key: secp256k1::PublicKey>|< raw_value: Vec<secp256k1::PublicKey> >
[INFO] [stdout] 100 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `psbt::error::Error`
[INFO] [stdout]    --> bitcoin/src/psbt/macros.rs:109:24
[INFO] [stdout]     |
[INFO] [stdout]  85 |   macro_rules! impl_psbt_insert_pair {
[INFO] [stdout] ...
[INFO] [stdout] 109 |               return Err($crate::psbt::Error::InvalidKey($raw_key).into());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: bitcoin/src/psbt/map/output.rs:98:17
[INFO] [stdout]     |
[INFO] [stdout]  98 | /                 impl_psbt_insert_pair! {
[INFO] [stdout]  99 | |                     self.musig2_participant_pubkeys <= <raw_key: secp256k1::PublicKey>|< raw_value: Vec<secp256k1::PublicKey> >
[INFO] [stdout] 100 | |                 }
[INFO] [stdout]     | |_________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<psbt::error::Error as Into<psbt::error::Error>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `bitcoin` (lib test) due to 46 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "f298021b45a101be01629725eac00593702dc4769f3ce4b3c2879e22cc2becaf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f298021b45a101be01629725eac00593702dc4769f3ce4b3c2879e22cc2becaf", kill_on_drop: false }`
[INFO] [stdout] f298021b45a101be01629725eac00593702dc4769f3ce4b3c2879e22cc2becaf
