mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-30 16:39:26 +00:00
57 lines
1.3 KiB
Rust
57 lines
1.3 KiB
Rust
#![warn(clippy::large_stack_arrays)]
|
|
#![allow(clippy::large_enum_variant)]
|
|
|
|
#[derive(Clone, Copy)]
|
|
struct S {
|
|
pub data: [u64; 32],
|
|
}
|
|
|
|
#[derive(Clone, Copy)]
|
|
enum E {
|
|
S(S),
|
|
T(u32),
|
|
}
|
|
|
|
pub static DOESNOTLINT: [u8; 512_001] = [0; 512_001];
|
|
pub static DOESNOTLINT2: [u8; 512_001] = {
|
|
let x = 0;
|
|
[x; 512_001]
|
|
};
|
|
|
|
fn issue_10741() {
|
|
#[derive(Copy, Clone)]
|
|
struct Large([u32; 100_000]);
|
|
|
|
fn build() -> Large {
|
|
Large([0; 100_000])
|
|
}
|
|
|
|
let _x = [build(); 3];
|
|
//~^ ERROR: allocating a local array larger than 512000 bytes
|
|
|
|
let _y = [build(), build(), build()];
|
|
//~^ ERROR: allocating a local array larger than 512000 bytes
|
|
}
|
|
|
|
fn main() {
|
|
let bad = (
|
|
[0u32; 20_000_000],
|
|
//~^ ERROR: allocating a local array larger than 512000 bytes
|
|
[S { data: [0; 32] }; 5000],
|
|
//~^ ERROR: allocating a local array larger than 512000 bytes
|
|
[Some(""); 20_000_000],
|
|
//~^ ERROR: allocating a local array larger than 512000 bytes
|
|
[E::T(0); 5000],
|
|
//~^ ERROR: allocating a local array larger than 512000 bytes
|
|
[0u8; usize::MAX],
|
|
//~^ ERROR: allocating a local array larger than 512000 bytes
|
|
);
|
|
|
|
let good = (
|
|
[0u32; 1000],
|
|
[S { data: [0; 32] }; 1000],
|
|
[Some(""); 1000],
|
|
[E::T(0); 1000],
|
|
[(); 20_000_000],
|
|
);
|
|
}
|