mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 15:11:30 +00:00
Auto merge of #10423 - Alexendoo:array-size-threshold, r=flip1995
Fix array-size-threshold config deserialization error changelog: Fix error when providing an `array-size-threshold` in `clippy.toml` Not entirely sure why it doesn't want to deserialize a u128, but converting it after the fact is an easy enough fix Fixes #10422
This commit is contained in:
commit
acf70eae4c
10 changed files with 53 additions and 17 deletions
|
@ -306,7 +306,7 @@ The maximum number of lines a function or method can have
|
|||
### array-size-threshold
|
||||
The maximum allowed size for arrays on the stack
|
||||
|
||||
**Default Value:** `512000` (`u128`)
|
||||
**Default Value:** `512000` (`u64`)
|
||||
|
||||
* [large_stack_arrays](https://rust-lang.github.io/rust-clippy/master/index.html#large_stack_arrays)
|
||||
* [large_const_arrays](https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays)
|
||||
|
|
|
@ -777,7 +777,7 @@ pub fn register_plugins(store: &mut rustc_lint::LintStore, sess: &Session, conf:
|
|||
store.register_late_pass(|_| Box::new(mutable_debug_assertion::DebugAssertWithMutCall));
|
||||
store.register_late_pass(|_| Box::new(exit::Exit));
|
||||
store.register_late_pass(|_| Box::new(to_digit_is_some::ToDigitIsSome));
|
||||
let array_size_threshold = conf.array_size_threshold;
|
||||
let array_size_threshold = u128::from(conf.array_size_threshold);
|
||||
store.register_late_pass(move |_| Box::new(large_stack_arrays::LargeStackArrays::new(array_size_threshold)));
|
||||
store.register_late_pass(move |_| Box::new(large_const_arrays::LargeConstArrays::new(array_size_threshold)));
|
||||
store.register_late_pass(|_| Box::new(floating_point_arithmetic::FloatingPointArithmetic));
|
||||
|
|
|
@ -334,7 +334,7 @@ define_Conf! {
|
|||
/// Lint: LARGE_STACK_ARRAYS, LARGE_CONST_ARRAYS.
|
||||
///
|
||||
/// The maximum allowed size for arrays on the stack
|
||||
(array_size_threshold: u128 = 512_000),
|
||||
(array_size_threshold: u64 = 512_000),
|
||||
/// Lint: VEC_BOX.
|
||||
///
|
||||
/// The size of the boxed type in bytes, where boxing in a `Vec` is allowed
|
||||
|
|
10
tests/ui-toml/array_size_threshold/array_size_threshold.rs
Normal file
10
tests/ui-toml/array_size_threshold/array_size_threshold.rs
Normal file
|
@ -0,0 +1,10 @@
|
|||
#![allow(unused)]
|
||||
#![warn(clippy::large_const_arrays, clippy::large_stack_arrays)]
|
||||
|
||||
const ABOVE: [u8; 11] = [0; 11];
|
||||
const BELOW: [u8; 10] = [0; 10];
|
||||
|
||||
fn main() {
|
||||
let above = [0u8; 11];
|
||||
let below = [0u8; 10];
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
error: large array defined as const
|
||||
--> $DIR/array_size_threshold.rs:4:1
|
||||
|
|
||||
LL | const ABOVE: [u8; 11] = [0; 11];
|
||||
| -----^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| help: make this a static item: `static`
|
||||
|
|
||||
= note: `-D clippy::large-const-arrays` implied by `-D warnings`
|
||||
|
||||
error: allocating a local array larger than 10 bytes
|
||||
--> $DIR/array_size_threshold.rs:4:25
|
||||
|
|
||||
LL | const ABOVE: [u8; 11] = [0; 11];
|
||||
| ^^^^^^^
|
||||
|
|
||||
= help: consider allocating on the heap with `vec![0; 11].into_boxed_slice()`
|
||||
= note: `-D clippy::large-stack-arrays` implied by `-D warnings`
|
||||
|
||||
error: allocating a local array larger than 10 bytes
|
||||
--> $DIR/array_size_threshold.rs:8:17
|
||||
|
|
||||
LL | let above = [0u8; 11];
|
||||
| ^^^^^^^^^
|
||||
|
|
||||
= help: consider allocating on the heap with `vec![0u8; 11].into_boxed_slice()`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
1
tests/ui-toml/array_size_threshold/clippy.toml
Normal file
1
tests/ui-toml/array_size_threshold/clippy.toml
Normal file
|
@ -0,0 +1 @@
|
|||
array-size-threshold = 10
|
|
@ -1,3 +0,0 @@
|
|||
fn main() {
|
||||
[0; usize::MAX];
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
error: statement with no effect
|
||||
--> $DIR/ice-10044.rs:2:5
|
||||
|
|
||||
LL | [0; usize::MAX];
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `-D clippy::no-effect` implied by `-D warnings`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
|
@ -24,6 +24,7 @@ fn main() {
|
|||
[S { data: [0; 32] }; 5000],
|
||||
[Some(""); 20_000_000],
|
||||
[E::T(0); 5000],
|
||||
[0u8; usize::MAX],
|
||||
);
|
||||
|
||||
let good = (
|
||||
|
|
|
@ -31,5 +31,13 @@ LL | [E::T(0); 5000],
|
|||
|
|
||||
= help: consider allocating on the heap with `vec![E::T(0); 5000].into_boxed_slice()`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
error: allocating a local array larger than 512000 bytes
|
||||
--> $DIR/large_stack_arrays.rs:27:9
|
||||
|
|
||||
LL | [0u8; usize::MAX],
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: consider allocating on the heap with `vec![0u8; usize::MAX].into_boxed_slice()`
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
|
|
Loading…
Reference in a new issue