Fix Rust beta compiler errors (1.77) (#5180)

* Lint fixes

* More fixes for beta compiler.

* Format fixes

* Move `#[allow(dead_code)]` to field level.

* Remove old comment.

* Update beacon_node/execution_layer/src/test_utils/mod.rs

Co-authored-by: João Oliveira <hello@jxs.pt>

* remove duplicate line
This commit is contained in:
Jimmy Chen 2024-02-06 04:54:11 +11:00 committed by GitHub
parent 8fb6989801
commit 39e9f7dc6b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 64 additions and 46 deletions

View File

@ -539,8 +539,8 @@ impl<'a, T: BeaconChainTypes> IndexedAggregatedAttestation<'a, T> {
Err(e) => return Err(SignatureNotChecked(&signed_aggregate.message.aggregate, e)), Err(e) => return Err(SignatureNotChecked(&signed_aggregate.message.aggregate, e)),
}; };
let indexed_attestation = let get_indexed_attestation_with_committee =
match map_attestation_committee(chain, attestation, |(committee, _)| { |(committee, _): (BeaconCommittee, CommitteesPerSlot)| {
// Note: this clones the signature which is known to be a relatively slow operation. // Note: this clones the signature which is known to be a relatively slow operation.
// //
// Future optimizations should remove this clone. // Future optimizations should remove this clone.
@ -561,7 +561,13 @@ impl<'a, T: BeaconChainTypes> IndexedAggregatedAttestation<'a, T> {
get_indexed_attestation(committee.committee, attestation) get_indexed_attestation(committee.committee, attestation)
.map_err(|e| BeaconChainError::from(e).into()) .map_err(|e| BeaconChainError::from(e).into())
}) { };
let indexed_attestation = match map_attestation_committee(
chain,
attestation,
get_indexed_attestation_with_committee,
) {
Ok(indexed_attestation) => indexed_attestation, Ok(indexed_attestation) => indexed_attestation,
Err(e) => return Err(SignatureNotChecked(&signed_aggregate.message.aggregate, e)), Err(e) => return Err(SignatureNotChecked(&signed_aggregate.message.aggregate, e)),
}; };

View File

@ -967,7 +967,7 @@ mod test {
let spec = &E::default_spec(); let spec = &E::default_spec();
let state: BeaconState<E> = BeaconState::new(0, get_eth1_data(0), spec); let state: BeaconState<E> = BeaconState::new(0, get_eth1_data(0), spec);
let blocks = vec![]; let blocks = [];
assert_eq!( assert_eq!(
get_votes_to_consider( get_votes_to_consider(

View File

@ -51,7 +51,8 @@ const MAX_BLOCK_PRODUCTION_CACHE_DISTANCE: u64 = 4;
#[derive(Debug)] #[derive(Debug)]
enum Error { enum Error {
BeaconChain(BeaconChainError), BeaconChain(BeaconChainError),
HeadMissingFromSnapshotCache(Hash256), // We don't use the inner value directly, but it's used in the Debug impl.
HeadMissingFromSnapshotCache(#[allow(dead_code)] Hash256),
MaxDistanceExceeded { MaxDistanceExceeded {
current_slot: Slot, current_slot: Slot,
head_slot: Slot, head_slot: Slot,

View File

@ -54,7 +54,8 @@ impl Operation {
} }
#[derive(Debug)] #[derive(Debug)]
struct Custom(String); // We don't use the string value directly, but it's used in the Debug impl which is required by `warp::reject::Reject`.
struct Custom(#[allow(dead_code)] String);
impl warp::reject::Reject for Custom {} impl warp::reject::Reject for Custom {}

View File

@ -599,8 +599,8 @@ async fn handle_rejection(err: Rejection) -> Result<impl warp::Reply, Infallible
let code; let code;
let message; let message;
if let Some(e) = err.find::<AuthError>() { if let Some(AuthError(e)) = err.find::<AuthError>() {
message = format!("Authorization error: {:?}", e); message = format!("Authorization error: {}", e);
code = StatusCode::UNAUTHORIZED; code = StatusCode::UNAUTHORIZED;
} else { } else {
message = "BAD_REQUEST".to_string(); message = "BAD_REQUEST".to_string();

View File

@ -14,11 +14,12 @@ const MAX_REQUEST_RANGE_EPOCHS: usize = 100;
const BLOCK_ROOT_CHUNK_SIZE: usize = 100; const BLOCK_ROOT_CHUNK_SIZE: usize = 100;
#[derive(Debug)] #[derive(Debug)]
// We don't use the inner values directly, but they're used in the Debug impl.
enum AttestationPerformanceError { enum AttestationPerformanceError {
BlockReplay(BlockReplayError), BlockReplay(#[allow(dead_code)] BlockReplayError),
BeaconState(BeaconStateError), BeaconState(#[allow(dead_code)] BeaconStateError),
ParticipationCache(ParticipationCacheError), ParticipationCache(#[allow(dead_code)] ParticipationCacheError),
UnableToFindValidator(usize), UnableToFindValidator(#[allow(dead_code)] usize),
} }
impl From<BlockReplayError> for AttestationPerformanceError { impl From<BlockReplayError> for AttestationPerformanceError {

View File

@ -19,10 +19,11 @@ use warp_utils::reject::{beacon_chain_error, custom_bad_request, custom_server_e
const BLOCK_ROOT_CHUNK_SIZE: usize = 100; const BLOCK_ROOT_CHUNK_SIZE: usize = 100;
#[derive(Debug)] #[derive(Debug)]
// We don't use the inner values directly, but they're used in the Debug impl.
enum PackingEfficiencyError { enum PackingEfficiencyError {
BlockReplay(BlockReplayError), BlockReplay(#[allow(dead_code)] BlockReplayError),
BeaconState(BeaconStateError), BeaconState(#[allow(dead_code)] BeaconStateError),
CommitteeStoreError(Slot), CommitteeStoreError(#[allow(dead_code)] Slot),
InvalidAttestationError, InvalidAttestationError,
} }

View File

@ -1019,7 +1019,7 @@ pub fn serve<T: BeaconChainTypes>(
Ok(( Ok((
state state
.get_built_sync_committee(epoch, &chain.spec) .get_built_sync_committee(epoch, &chain.spec)
.map(|committee| committee.clone()) .cloned()
.map_err(|e| match e { .map_err(|e| match e {
BeaconStateError::SyncCommitteeNotKnown { .. } => { BeaconStateError::SyncCommitteeNotKnown { .. } => {
warp_utils::reject::custom_bad_request(format!( warp_utils::reject::custom_bad_request(format!(
@ -2858,7 +2858,7 @@ pub fn serve<T: BeaconChainTypes>(
hex::encode( hex::encode(
meta_data meta_data
.syncnets() .syncnets()
.map(|x| x.clone()) .cloned()
.unwrap_or_default() .unwrap_or_default()
.into_bytes() .into_bytes()
) )

View File

@ -174,7 +174,7 @@ fn inject_nodes1() -> InjectNodes<IdentityTransform, AllowAllSubscriptionFilter>
fn add_peer<D, F>( fn add_peer<D, F>(
gs: &mut Behaviour<D, F>, gs: &mut Behaviour<D, F>,
topic_hashes: &Vec<TopicHash>, topic_hashes: &[TopicHash],
outbound: bool, outbound: bool,
explicit: bool, explicit: bool,
) -> (PeerId, RpcReceiver) ) -> (PeerId, RpcReceiver)
@ -187,7 +187,7 @@ where
fn add_peer_with_addr<D, F>( fn add_peer_with_addr<D, F>(
gs: &mut Behaviour<D, F>, gs: &mut Behaviour<D, F>,
topic_hashes: &Vec<TopicHash>, topic_hashes: &[TopicHash],
outbound: bool, outbound: bool,
explicit: bool, explicit: bool,
address: Multiaddr, address: Multiaddr,
@ -208,7 +208,7 @@ where
fn add_peer_with_addr_and_kind<D, F>( fn add_peer_with_addr_and_kind<D, F>(
gs: &mut Behaviour<D, F>, gs: &mut Behaviour<D, F>,
topic_hashes: &Vec<TopicHash>, topic_hashes: &[TopicHash],
outbound: bool, outbound: bool,
explicit: bool, explicit: bool,
address: Multiaddr, address: Multiaddr,
@ -3218,7 +3218,7 @@ fn test_scoring_p1() {
); );
} }
fn random_message(seq: &mut u64, topics: &Vec<TopicHash>) -> RawMessage { fn random_message(seq: &mut u64, topics: &[TopicHash]) -> RawMessage {
let mut rng = rand::thread_rng(); let mut rng = rand::thread_rng();
*seq += 1; *seq += 1;
RawMessage { RawMessage {
@ -4080,20 +4080,20 @@ fn test_scoring_p6() {
//create 5 peers with the same ip //create 5 peers with the same ip
let addr = Multiaddr::from(Ipv4Addr::new(10, 1, 2, 3)); let addr = Multiaddr::from(Ipv4Addr::new(10, 1, 2, 3));
let peers = vec![ let peers = vec![
add_peer_with_addr(&mut gs, &vec![], false, false, addr.clone()).0, add_peer_with_addr(&mut gs, &[], false, false, addr.clone()).0,
add_peer_with_addr(&mut gs, &vec![], false, false, addr.clone()).0, add_peer_with_addr(&mut gs, &[], false, false, addr.clone()).0,
add_peer_with_addr(&mut gs, &vec![], true, false, addr.clone()).0, add_peer_with_addr(&mut gs, &[], true, false, addr.clone()).0,
add_peer_with_addr(&mut gs, &vec![], true, false, addr.clone()).0, add_peer_with_addr(&mut gs, &[], true, false, addr.clone()).0,
add_peer_with_addr(&mut gs, &vec![], true, true, addr.clone()).0, add_peer_with_addr(&mut gs, &[], true, true, addr.clone()).0,
]; ];
//create 4 other peers with other ip //create 4 other peers with other ip
let addr2 = Multiaddr::from(Ipv4Addr::new(10, 1, 2, 4)); let addr2 = Multiaddr::from(Ipv4Addr::new(10, 1, 2, 4));
let others = vec![ let others = vec![
add_peer_with_addr(&mut gs, &vec![], false, false, addr2.clone()).0, add_peer_with_addr(&mut gs, &[], false, false, addr2.clone()).0,
add_peer_with_addr(&mut gs, &vec![], false, false, addr2.clone()).0, add_peer_with_addr(&mut gs, &[], false, false, addr2.clone()).0,
add_peer_with_addr(&mut gs, &vec![], true, false, addr2.clone()).0, add_peer_with_addr(&mut gs, &[], true, false, addr2.clone()).0,
add_peer_with_addr(&mut gs, &vec![], true, false, addr2.clone()).0, add_peer_with_addr(&mut gs, &[], true, false, addr2.clone()).0,
]; ];
//no penalties yet //no penalties yet

View File

@ -42,7 +42,12 @@ pub fn fork_context(fork_name: ForkName) -> ForkContext {
ForkContext::new::<E>(current_slot, Hash256::zero(), &chain_spec) ForkContext::new::<E>(current_slot, Hash256::zero(), &chain_spec)
} }
pub struct Libp2pInstance(LibP2PService<ReqId, E>, exit_future::Signal); pub struct Libp2pInstance(
LibP2PService<ReqId, E>,
#[allow(dead_code)]
// This field is managed for lifetime purposes may not be used directly, hence the `#[allow(dead_code)]` attribute.
exit_future::Signal,
);
impl std::ops::Deref for Libp2pInstance { impl std::ops::Deref for Libp2pInstance {
type Target = LibP2PService<ReqId, E>; type Target = LibP2PService<ReqId, E>;

View File

@ -253,7 +253,7 @@ mod attestation_service {
&attestation_service.beacon_chain.spec, &attestation_service.beacon_chain.spec,
) )
.unwrap(); .unwrap();
let expected = vec![ let expected = [
SubnetServiceMessage::Subscribe(Subnet::Attestation(subnet_id)), SubnetServiceMessage::Subscribe(Subnet::Attestation(subnet_id)),
SubnetServiceMessage::Unsubscribe(Subnet::Attestation(subnet_id)), SubnetServiceMessage::Unsubscribe(Subnet::Attestation(subnet_id)),
]; ];

View File

@ -1344,7 +1344,7 @@ impl<E: EthSpec, Hot: ItemStore<E>, Cold: ItemStore<E>> HotColdDB<E, Hot, Cold>
high_restore_point high_restore_point
.get_block_root(slot) .get_block_root(slot)
.or_else(|_| high_restore_point.get_oldest_block_root()) .or_else(|_| high_restore_point.get_oldest_block_root())
.map(|x| *x) .copied()
.map_err(HotColdDBError::RestorePointBlockHashError) .map_err(HotColdDBError::RestorePointBlockHashError)
} }

View File

@ -214,6 +214,7 @@ impl<'a> Builder<'a> {
.write(true) .write(true)
.read(true) .read(true)
.create(true) .create(true)
.truncate(true)
.open(path) .open(path)
.map_err(Error::UnableToSaveDepositData)? .map_err(Error::UnableToSaveDepositData)?
.write_all(hex.as_bytes()) .write_all(hex.as_bytes())
@ -231,6 +232,7 @@ impl<'a> Builder<'a> {
.write(true) .write(true)
.read(true) .read(true)
.create(true) .create(true)
.truncate(true)
.open(path) .open(path)
.map_err(Error::UnableToSaveDepositAmount)? .map_err(Error::UnableToSaveDepositAmount)?
.write_all(format!("{}", amount).as_bytes()) .write_all(format!("{}", amount).as_bytes())

View File

@ -26,13 +26,11 @@ pub fn u64_leaf_count(len: usize) -> usize {
pub fn hash256_iter( pub fn hash256_iter(
values: &[Hash256], values: &[Hash256],
) -> impl Iterator<Item = [u8; BYTES_PER_CHUNK]> + ExactSizeIterator + '_ { ) -> impl ExactSizeIterator<Item = [u8; BYTES_PER_CHUNK]> + '_ {
values.iter().copied().map(Hash256::to_fixed_bytes) values.iter().copied().map(Hash256::to_fixed_bytes)
} }
pub fn u64_iter( pub fn u64_iter(values: &[u64]) -> impl ExactSizeIterator<Item = [u8; BYTES_PER_CHUNK]> + '_ {
values: &[u64],
) -> impl Iterator<Item = [u8; BYTES_PER_CHUNK]> + ExactSizeIterator + '_ {
let type_size = size_of::<u64>(); let type_size = size_of::<u64>();
let vals_per_chunk = BYTES_PER_CHUNK / type_size; let vals_per_chunk = BYTES_PER_CHUNK / type_size;
values.chunks(vals_per_chunk).map(move |xs| { values.chunks(vals_per_chunk).map(move |xs| {

View File

@ -641,7 +641,7 @@ impl<T: EthSpec> BeaconState<T> {
if self.slot() <= decision_slot { if self.slot() <= decision_slot {
Ok(block_root) Ok(block_root)
} else { } else {
self.get_block_root(decision_slot).map(|root| *root) self.get_block_root(decision_slot).copied()
} }
} }
@ -657,7 +657,7 @@ impl<T: EthSpec> BeaconState<T> {
if self.slot() == decision_slot { if self.slot() == decision_slot {
Ok(block_root) Ok(block_root)
} else { } else {
self.get_block_root(decision_slot).map(|root| *root) self.get_block_root(decision_slot).copied()
} }
} }
@ -683,7 +683,7 @@ impl<T: EthSpec> BeaconState<T> {
if self.slot() == decision_slot { if self.slot() == decision_slot {
Ok(block_root) Ok(block_root)
} else { } else {
self.get_block_root(decision_slot).map(|root| *root) self.get_block_root(decision_slot).copied()
} }
} }

View File

@ -81,7 +81,7 @@ impl<'a, N: Unsigned> CachedTreeHash<TreeHashCache> for HistoricalSummaryCache<'
pub fn leaf_iter( pub fn leaf_iter(
values: &[HistoricalSummary], values: &[HistoricalSummary],
) -> impl Iterator<Item = [u8; BYTES_PER_CHUNK]> + ExactSizeIterator + '_ { ) -> impl ExactSizeIterator<Item = [u8; BYTES_PER_CHUNK]> + '_ {
values values
.iter() .iter()
.map(|value| value.tree_hash_root()) .map(|value| value.tree_hash_root())

View File

@ -43,7 +43,7 @@ pub fn leaf_count(len: usize) -> usize {
pub fn leaf_iter( pub fn leaf_iter(
values: &[ParticipationFlags], values: &[ParticipationFlags],
) -> impl Iterator<Item = [u8; BYTES_PER_CHUNK]> + ExactSizeIterator + '_ { ) -> impl ExactSizeIterator<Item = [u8; BYTES_PER_CHUNK]> + '_ {
values.chunks(BYTES_PER_CHUNK).map(|xs| { values.chunks(BYTES_PER_CHUNK).map(|xs| {
// Zero-pad chunks on the right. // Zero-pad chunks on the right.
let mut chunk = [0u8; BYTES_PER_CHUNK]; let mut chunk = [0u8; BYTES_PER_CHUNK];

View File

@ -356,6 +356,7 @@ pub fn inspect_db<E: EthSpec>(
let write_result = fs::OpenOptions::new() let write_result = fs::OpenOptions::new()
.create(true) .create(true)
.truncate(true)
.write(true) .write(true)
.open(&file_path) .open(&file_path)
.map_err(|e| format!("Failed to open file: {:?}", e)) .map_err(|e| format!("Failed to open file: {:?}", e))

View File

@ -434,7 +434,7 @@ impl<E: EthSpec> Environment<E> {
async move { rx.next().await.ok_or("Internal shutdown channel exhausted") }; async move { rx.next().await.ok_or("Internal shutdown channel exhausted") };
futures::pin_mut!(inner_shutdown); futures::pin_mut!(inner_shutdown);
match self.runtime().block_on(async { let register_handlers = async {
let mut handles = vec![]; let mut handles = vec![];
// setup for handling SIGTERM // setup for handling SIGTERM
@ -465,7 +465,9 @@ impl<E: EthSpec> Environment<E> {
} }
future::select(inner_shutdown, future::select_all(handles.into_iter())).await future::select(inner_shutdown, future::select_all(handles.into_iter())).await
}) { };
match self.runtime().block_on(register_handlers) {
future::Either::Left((Ok(reason), _)) => { future::Either::Left((Ok(reason), _)) => {
info!(self.log, "Internal shutdown received"; "reason" => reason.message()); info!(self.log, "Internal shutdown received"; "reason" => reason.message());
Ok(reason) Ok(reason)