// build-fail // compile-flags: -Copt-level=0 // normalize-stderr-test: ".nll/" -> "/" fn main() { rec(Empty); } struct Empty; impl Iterator for Empty { type Item = (); fn next<'a>(&'a mut self) -> core::option::Option<()> { None } } fn identity(x: T) -> T { x } fn rec(mut it: T) where T: Iterator, { if () == () { T::count(it); } else { rec(identity(&mut it)) //~^ ERROR reached the recursion limit while instantiating } }