//! The recursive method call yields the opaque type. The
//! `next` method call then constrains the hidden type to `&mut _`
//! because `next` takes `&mut self`. We never resolve the inference
//! variable, but get a type mismatch when comparing `&mut _` with
//! `std::iter::Empty`.

//@ revisions: current next
//@[next] compile-flags: -Znext-solver
//@ check-pass

fn foo(b: bool) -> impl Iterator<Item = ()> {
    if b {
        foo(false).next().unwrap();
    }
    std::iter::empty()
}

fn main() {}
