Lint for sum and product in consensus code (#2226)

## Issue Addressed

Closes #1621

## Proposed Changes

Use the `disallowed_method` lint to ban uses of `Iterator::{sum,product}` from `types` and `state_processing`.

## Additional Info

The lint is turned off in the tree hash caching code, as it is performance sensitive and overflowy arithmetic is already allowed there.
This commit is contained in:
Michael Sproul 2021-03-01 00:57:13 +00:00
parent 0b2ccecbcf
commit baef1db40f
5 changed files with 13 additions and 0 deletions

View File

@ -0,0 +1,5 @@
# Disallow sum and product methods which are prone to overflow.
disallowed-methods = [
"core::iter::traits::iterator::Iterator::sum",
"core::iter::traits::iterator::Iterator::product",
]

View File

@ -1,4 +1,5 @@
#![deny(clippy::integer_arithmetic)] #![deny(clippy::integer_arithmetic)]
#![deny(clippy::disallowed_method)]
#[macro_use] #[macro_use]
mod macros; mod macros;

View File

@ -0,0 +1,5 @@
# Disallow sum and product methods which are prone to overflow.
disallowed-methods = [
"core::iter::traits::iterator::Iterator::sum",
"core::iter::traits::iterator::Iterator::product",
]

View File

@ -1,4 +1,5 @@
#![allow(clippy::integer_arithmetic)] #![allow(clippy::integer_arithmetic)]
#![allow(clippy::disallowed_method)]
use super::Error; use super::Error;
use crate::{BeaconState, EthSpec, Hash256, Slot, Unsigned, Validator}; use crate::{BeaconState, EthSpec, Hash256, Slot, Unsigned, Validator};

View File

@ -4,6 +4,7 @@
#![recursion_limit = "128"] #![recursion_limit = "128"]
// Clippy lint set up // Clippy lint set up
#![deny(clippy::integer_arithmetic)] #![deny(clippy::integer_arithmetic)]
#![deny(clippy::disallowed_method)]
#[macro_use] #[macro_use]
extern crate lazy_static; extern crate lazy_static;