49 lines
1.5 KiB
Rust
49 lines
1.5 KiB
Rust
//@ check-pass
|
|
// This test is reduced from librustc_ast. It is just checking that we
|
|
// can successfully deal with a "deep" structure, which the drop-check
|
|
// was hitting a recursion limit on at one point.
|
|
|
|
//@ pretty-expanded FIXME #23616
|
|
|
|
#![allow(non_camel_case_types)]
|
|
|
|
pub fn noop_fold_impl_item() -> SmallVector<ImplItem> {
|
|
loop { }
|
|
}
|
|
|
|
pub struct SmallVector<T>(P<T>);
|
|
pub struct ImplItem(P<S01_Method>);
|
|
|
|
struct P<T>(Box<T>);
|
|
|
|
struct S01_Method(P<S02_Generics>);
|
|
struct S02_Generics(P<S03_TyParam>);
|
|
struct S03_TyParam(P<S04_TyParamBound>);
|
|
struct S04_TyParamBound(S05_PolyTraitRef);
|
|
struct S05_PolyTraitRef(S06_TraitRef);
|
|
struct S06_TraitRef(S07_Path);
|
|
struct S07_Path(Vec<S08_PathSegment>);
|
|
struct S08_PathSegment(S09_GenericArgs);
|
|
struct S09_GenericArgs(P<S10_ParenthesizedParameterData>);
|
|
struct S10_ParenthesizedParameterData(Option<P<S11_Ty>>);
|
|
struct S11_Ty(P<S12_Expr>);
|
|
struct S12_Expr(P<S13_Block>);
|
|
struct S13_Block(Vec<P<S14_Stmt>>);
|
|
struct S14_Stmt(P<S15_Decl>);
|
|
struct S15_Decl(P<S16_Local>);
|
|
struct S16_Local(P<S17_Pat>);
|
|
struct S17_Pat(P<S18_Mac>);
|
|
struct S18_Mac(Vec<P<S19_TokenTree>>);
|
|
struct S19_TokenTree(P<S20_Token>);
|
|
struct S20_Token(P<S21_Nonterminal>);
|
|
struct S21_Nonterminal(P<S22_Item>);
|
|
struct S22_Item(P<S23_EnumDef>);
|
|
struct S23_EnumDef(Vec<P<S24_Variant>>);
|
|
struct S24_Variant(P<S25_VariantKind>);
|
|
struct S25_VariantKind(P<S26_StructDef>);
|
|
struct S26_StructDef(Vec<P<S27_StructField>>);
|
|
struct S27_StructField(P<S28_StructFieldKind>);
|
|
struct S28_StructFieldKind;
|
|
|
|
pub fn main() {}
|