fix(clippy): Resolve some lifetime and reference lints (#4578)
* Fix significant drop in match scrutinee https://github.com/rust-lang/rust/issues/93883 * Fix deref immutable value * Fix explicit 0 index when first() would do Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
This commit is contained in:
parent
8d0a1b011c
commit
3825caae03
|
@ -335,7 +335,8 @@ impl NoteCommitmentTree {
|
|||
.cached_root
|
||||
.write()
|
||||
.expect("a thread that previously held exclusive lock access panicked");
|
||||
match *write_root {
|
||||
let read_root = write_root.as_ref().cloned();
|
||||
match read_root {
|
||||
// Another thread got write access first, return cached root.
|
||||
Some(root) => root,
|
||||
None => {
|
||||
|
|
|
@ -340,7 +340,8 @@ impl NoteCommitmentTree {
|
|||
.cached_root
|
||||
.write()
|
||||
.expect("a thread that previously held exclusive lock access panicked");
|
||||
match *write_root {
|
||||
let read_root = write_root.as_ref().cloned();
|
||||
match read_root {
|
||||
// Another thread got write access first, return cached root.
|
||||
Some(root) => root,
|
||||
None => {
|
||||
|
|
|
@ -274,7 +274,8 @@ impl NoteCommitmentTree {
|
|||
.cached_root
|
||||
.write()
|
||||
.expect("a thread that previously held exclusive lock access panicked");
|
||||
match *write_root {
|
||||
let read_root = write_root.as_ref().cloned();
|
||||
match read_root {
|
||||
// Another thread got write access first, return cached root.
|
||||
Some(root) => root,
|
||||
None => {
|
||||
|
|
|
@ -98,7 +98,7 @@ pub(crate) fn parse_coinbase_height(
|
|||
mut data: Vec<u8>,
|
||||
) -> Result<(block::Height, CoinbaseData), SerializationError> {
|
||||
use block::Height;
|
||||
match (data.get(0), data.len()) {
|
||||
match (data.first(), data.len()) {
|
||||
// Blocks 1 through 16 inclusive encode block height with OP_N opcodes.
|
||||
(Some(op_n @ 0x51..=0x60), len) if len >= 1 => Ok((
|
||||
Height((op_n - 0x50) as u32),
|
||||
|
|
|
@ -195,12 +195,18 @@ impl ChainTipSender {
|
|||
// a read-lock being created and living beyond the `self.sender.send(..)` call. If that
|
||||
// happens, the `send` method will attempt to obtain a write-lock and will dead-lock.
|
||||
// Without the binding, the guard is dropped at the end of the expression.
|
||||
let needs_update = match (new_tip.as_ref(), self.sender.borrow().as_ref()) {
|
||||
let active_hash = self
|
||||
.sender
|
||||
.borrow()
|
||||
.as_ref()
|
||||
.map(|active_value| active_value.hash);
|
||||
|
||||
let needs_update = match (new_tip.as_ref(), active_hash) {
|
||||
// since the blocks have been contextually validated,
|
||||
// we know their hashes cover all the block data
|
||||
(Some(new_tip), Some(active_value)) => new_tip.hash != active_value.hash,
|
||||
(Some(new_tip), Some(active_hash)) => new_tip.hash != active_hash,
|
||||
(Some(_new_tip), None) => true,
|
||||
(None, _active_value) => false,
|
||||
(None, _active_value_hash) => false,
|
||||
};
|
||||
|
||||
if needs_update {
|
||||
|
|
|
@ -73,7 +73,7 @@ where
|
|||
type Bytes = T::Bytes;
|
||||
|
||||
fn as_bytes(&self) -> Self::Bytes {
|
||||
T::as_bytes(&*self)
|
||||
T::as_bytes(self)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue