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

trait Get {
    fn get(&mut self) -> u32;
}

impl Get for () {
    fn get(&mut self) -> u32 {
        0
    }
}

impl<T> Get for &mut T
where
    T: Get,
{
    fn get(&mut self) -> u32 {
        T::get(self) + 1
    }
}

fn foo(n: usize, m: &mut ()) -> impl Get + use<'_> {
    if n > 0 {
        let mut iter = foo(n - 1, m);
        //[next]~^ ERROR type annotations needed
        assert_eq!(iter.get(), 1);
    }
    m
}

fn main() {
    let g = foo(1, &mut ()).get();
    assert_eq!(g, 1);
}
