| #![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], |
| ); |
| } |