2019-02-01 07:21:32 +00:00
|
|
|
// run-rustfix
|
2018-12-13 15:43:13 +00:00
|
|
|
|
2019-02-01 07:21:32 +00:00
|
|
|
#![allow(dead_code)]
|
|
|
|
|
|
|
|
struct SizedStruct(i32);
|
|
|
|
struct UnsizedStruct([i32]);
|
2020-01-23 14:52:41 +00:00
|
|
|
struct BigStruct([i32; 10000]);
|
2019-02-01 07:21:32 +00:00
|
|
|
|
|
|
|
/// The following should trigger the lint
|
|
|
|
mod should_trigger {
|
|
|
|
use super::SizedStruct;
|
2021-04-08 15:50:13 +00:00
|
|
|
const C: Vec<Box<i32>> = Vec::new();
|
|
|
|
static S: Vec<Box<i32>> = Vec::new();
|
2018-12-13 15:43:13 +00:00
|
|
|
|
2019-02-01 07:21:32 +00:00
|
|
|
struct StructWithVecBox {
|
|
|
|
sized_type: Vec<Box<SizedStruct>>,
|
|
|
|
}
|
|
|
|
|
|
|
|
struct A(Vec<Box<SizedStruct>>);
|
|
|
|
struct B(Vec<Vec<Box<(u32)>>>);
|
2018-12-13 15:43:13 +00:00
|
|
|
}
|
|
|
|
|
2019-02-01 07:21:32 +00:00
|
|
|
/// The following should not trigger the lint
|
|
|
|
mod should_not_trigger {
|
2020-01-23 14:52:41 +00:00
|
|
|
use super::{BigStruct, UnsizedStruct};
|
2019-02-01 07:21:32 +00:00
|
|
|
|
|
|
|
struct C(Vec<Box<UnsizedStruct>>);
|
2020-01-23 14:52:41 +00:00
|
|
|
struct D(Vec<Box<BigStruct>>);
|
2019-02-01 07:21:32 +00:00
|
|
|
|
|
|
|
struct StructWithVecBoxButItsUnsized {
|
|
|
|
unsized_type: Vec<Box<UnsizedStruct>>,
|
|
|
|
}
|
|
|
|
|
|
|
|
struct TraitVec<T: ?Sized> {
|
|
|
|
// Regression test for #3720. This was causing an ICE.
|
|
|
|
inner: Vec<Box<T>>,
|
|
|
|
}
|
2018-12-13 15:43:13 +00:00
|
|
|
}
|
|
|
|
|
2020-11-23 12:51:04 +00:00
|
|
|
mod inner_mod {
|
|
|
|
mod inner {
|
|
|
|
pub struct S;
|
|
|
|
}
|
|
|
|
|
|
|
|
mod inner2 {
|
|
|
|
use super::inner::S;
|
|
|
|
|
|
|
|
pub fn f() -> Vec<Box<S>> {
|
|
|
|
vec![]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-12-13 15:43:13 +00:00
|
|
|
fn main() {}
|