fix(rust): Make Zebra build with the latest nightly Rust (#5738)
* Remove an unused async track_caller which will soon become a warning * Explicitly drop unused futures * Work around a compiler panic (ICE) with flat_map() https://github.com/rust-lang/rust/issues/105044 * Remove a redundant into_iter() * allow(clippy::needless_collect)
This commit is contained in:
parent
1497f2d199
commit
26ff1b4fb0
|
@ -149,9 +149,16 @@ impl Block {
|
||||||
|
|
||||||
/// Access the [`orchard::Nullifier`]s from all transactions in this block.
|
/// Access the [`orchard::Nullifier`]s from all transactions in this block.
|
||||||
pub fn orchard_nullifiers(&self) -> impl Iterator<Item = &orchard::Nullifier> {
|
pub fn orchard_nullifiers(&self) -> impl Iterator<Item = &orchard::Nullifier> {
|
||||||
self.transactions
|
// Work around a compiler panic (ICE) with flat_map():
|
||||||
|
// https://github.com/rust-lang/rust/issues/105044
|
||||||
|
#[allow(clippy::needless_collect)]
|
||||||
|
let nullifiers: Vec<_> = self
|
||||||
|
.transactions
|
||||||
.iter()
|
.iter()
|
||||||
.flat_map(|transaction| transaction.orchard_nullifiers())
|
.flat_map(|transaction| transaction.orchard_nullifiers())
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
nullifiers.into_iter()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Count how many Sapling transactions exist in a block,
|
/// Count how many Sapling transactions exist in a block,
|
||||||
|
|
|
@ -120,7 +120,6 @@ async fn connect_isolated_sends_anonymised_version_message_mem_net(network: Netw
|
||||||
|
|
||||||
/// Wait to receive a version message on `inbound_stream`,
|
/// Wait to receive a version message on `inbound_stream`,
|
||||||
/// then check that it is correctly anonymised.
|
/// then check that it is correctly anonymised.
|
||||||
#[track_caller]
|
|
||||||
async fn check_version_message<PeerTransport>(
|
async fn check_version_message<PeerTransport>(
|
||||||
network: Network,
|
network: Network,
|
||||||
inbound_stream: &mut Framed<PeerTransport, Codec>,
|
inbound_stream: &mut Framed<PeerTransport, Codec>,
|
||||||
|
|
|
@ -90,10 +90,12 @@ impl ClientTestHarness {
|
||||||
|
|
||||||
/// Drops the mocked heartbeat shutdown receiver endpoint.
|
/// Drops the mocked heartbeat shutdown receiver endpoint.
|
||||||
pub fn drop_heartbeat_shutdown_receiver(&mut self) {
|
pub fn drop_heartbeat_shutdown_receiver(&mut self) {
|
||||||
let _ = self
|
let hearbeat_future = self
|
||||||
.shutdown_receiver
|
.shutdown_receiver
|
||||||
.take()
|
.take()
|
||||||
.expect("heartbeat shutdown receiver endpoint has already been dropped");
|
.expect("unexpected test failure: heartbeat shutdown receiver endpoint has already been dropped");
|
||||||
|
|
||||||
|
std::mem::drop(hearbeat_future);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Closes the receiver endpoint of [`ClientRequest`]s that are supposed to be sent to the
|
/// Closes the receiver endpoint of [`ClientRequest`]s that are supposed to be sent to the
|
||||||
|
|
|
@ -145,7 +145,8 @@ proptest! {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send a request to all peers
|
// Send a request to all peers
|
||||||
let _ = peer_set.route_broadcast(Request::AdvertiseBlock(block_hash));
|
let response_future = peer_set.route_broadcast(Request::AdvertiseBlock(block_hash));
|
||||||
|
std::mem::drop(response_future);
|
||||||
|
|
||||||
// Check how many peers received the request
|
// Check how many peers received the request
|
||||||
let mut received = 0;
|
let mut received = 0;
|
||||||
|
@ -213,7 +214,8 @@ proptest! {
|
||||||
let number_of_peers_to_broadcast = peer_set.number_of_peers_to_broadcast();
|
let number_of_peers_to_broadcast = peer_set.number_of_peers_to_broadcast();
|
||||||
|
|
||||||
// Send a request to all peers we have now
|
// Send a request to all peers we have now
|
||||||
let _ = peer_set.route_broadcast(Request::AdvertiseBlock(block_hash));
|
let response_future = peer_set.route_broadcast(Request::AdvertiseBlock(block_hash));
|
||||||
|
std::mem::drop(response_future);
|
||||||
|
|
||||||
// Check how many peers received the request
|
// Check how many peers received the request
|
||||||
let mut received = 0;
|
let mut received = 0;
|
||||||
|
@ -273,7 +275,8 @@ proptest! {
|
||||||
}
|
}
|
||||||
|
|
||||||
// this will panic as expected
|
// this will panic as expected
|
||||||
let _ = peer_set.route_broadcast(Request::AdvertiseBlock(block_hash));
|
let response_future = peer_set.route_broadcast(Request::AdvertiseBlock(block_hash));
|
||||||
|
std::mem::drop(response_future);
|
||||||
|
|
||||||
Ok::<_, TestCaseError>(())
|
Ok::<_, TestCaseError>(())
|
||||||
})?;
|
})?;
|
||||||
|
|
|
@ -33,11 +33,13 @@ pub(crate) fn block_precommit_metrics(block: &Block, hash: block::Hash, height:
|
||||||
.flat_map(|t| t.sapling_nullifiers())
|
.flat_map(|t| t.sapling_nullifiers())
|
||||||
.count();
|
.count();
|
||||||
|
|
||||||
let orchard_nullifier_count = block
|
// Work around a compiler panic (ICE) with flat_map():
|
||||||
|
// https://github.com/rust-lang/rust/issues/105044
|
||||||
|
let orchard_nullifier_count: usize = block
|
||||||
.transactions
|
.transactions
|
||||||
.iter()
|
.iter()
|
||||||
.flat_map(|t| t.orchard_nullifiers())
|
.map(|t| t.orchard_nullifiers().count())
|
||||||
.count();
|
.sum();
|
||||||
|
|
||||||
tracing::debug!(
|
tracing::debug!(
|
||||||
?hash,
|
?hash,
|
||||||
|
|
Loading…
Reference in New Issue