// Check that inliner handles various forms of recursion and doesn't fall into // an infinite inlining cycle. The particular outcome of inlining is not // crucial otherwise. // // Regression test for issue #78573. // EMIT_MIR inline_cycle_generic.main.Inline.diff fn main() { ::call(); } pub trait Call { fn call(); } pub struct A; pub struct B(T); pub struct C; impl Call for A { #[inline] fn call() { as Call>::call() } } impl Call for B { #[inline] fn call() { ::call() } } impl Call for C { #[inline] fn call() { as Call>::call() } }