Fix array-size-threshold config deserialization error

This commit is contained in:
Alex Macleod 2023-02-28 12:45:19 +00:00 committed by flip1995
parent 5cf9c3422c
commit 64b54ef950
7 changed files with 13 additions and 17 deletions

View file

@ -306,7 +306,7 @@ The maximum number of lines a function or method can have
### array-size-threshold ### array-size-threshold
The maximum allowed size for arrays on the stack 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_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) * [large_const_arrays](https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays)

View file

@ -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(mutable_debug_assertion::DebugAssertWithMutCall));
store.register_late_pass(|_| Box::new(exit::Exit)); store.register_late_pass(|_| Box::new(exit::Exit));
store.register_late_pass(|_| Box::new(to_digit_is_some::ToDigitIsSome)); 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_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(move |_| Box::new(large_const_arrays::LargeConstArrays::new(array_size_threshold)));
store.register_late_pass(|_| Box::new(floating_point_arithmetic::FloatingPointArithmetic)); store.register_late_pass(|_| Box::new(floating_point_arithmetic::FloatingPointArithmetic));

View file

@ -334,7 +334,7 @@ define_Conf! {
/// Lint: LARGE_STACK_ARRAYS, LARGE_CONST_ARRAYS. /// Lint: LARGE_STACK_ARRAYS, LARGE_CONST_ARRAYS.
/// ///
/// The maximum allowed size for arrays on the stack /// The maximum allowed size for arrays on the stack
(array_size_threshold: u128 = 512_000), (array_size_threshold: u64 = 512_000),
/// Lint: VEC_BOX. /// Lint: VEC_BOX.
/// ///
/// The size of the boxed type in bytes, where boxing in a `Vec` is allowed /// The size of the boxed type in bytes, where boxing in a `Vec` is allowed

View file

@ -1,3 +0,0 @@
fn main() {
[0; usize::MAX];
}

View file

@ -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

View file

@ -24,6 +24,7 @@ fn main() {
[S { data: [0; 32] }; 5000], [S { data: [0; 32] }; 5000],
[Some(""); 20_000_000], [Some(""); 20_000_000],
[E::T(0); 5000], [E::T(0); 5000],
[0u8; usize::MAX],
); );
let good = ( let good = (

View file

@ -31,5 +31,13 @@ LL | [E::T(0); 5000],
| |
= help: consider allocating on the heap with `vec![E::T(0); 5000].into_boxed_slice()` = 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