//~ ERROR reached the recursion limit finding the struct tail for `Bottom` //@ check-fail //@ compile-flags: --crate-type lib -Cdebuginfo=2 #![recursion_limit = "10"] macro_rules! link { ($outer:ident, $inner:ident) => { struct $outer($inner); impl $outer { fn new() -> $outer { $outer($inner::new()) } } impl std::ops::Deref for $outer { type Target = $inner; fn deref(&self) -> &$inner { &self.0 } } }; } struct Bottom; impl Bottom { fn new() -> Bottom { Bottom } } link!(A, B); link!(B, C); link!(C, D); link!(D, E); link!(E, F); link!(F, G); link!(G, H); link!(H, I); link!(I, J); link!(J, K); link!(K, Bottom); fn main() {}