// issue: #112841

#![feature(type_alias_impl_trait)]

trait Trait<'a, 'b> {}
impl<T> Trait<'_, '_> for T {}

mod mod1 {
    type Opaque<'a, 'b> = impl super::Trait<'a, 'b>;
    fn test<'a>() -> Opaque<'a, 'a> {}
    //~^ ERROR non-defining opaque type use in defining scope
    //~| ERROR non-defining opaque type use in defining scope
}

mod mod2 {
    type Opaque<'a, 'b> = impl super::Trait<'a, 'b>;
    fn test<'a: 'b, 'b: 'a>() -> Opaque<'a, 'b> {}
    //~^ ERROR non-defining opaque type use in defining scope
}

mod mod3 {
    type Opaque<'a, 'b> = impl super::Trait<'a, 'b>;
    fn test<'a: 'b, 'b: 'a>(a: &'a str) -> Opaque<'a, 'b> { a }
    //~^ ERROR non-defining opaque type use in defining scope
}

// This is similar to the previous cases in that 'a is equal to 'static,
// which is some sense an implicit parameter to `Opaque`.
// For example, given a defining use `Opaque<'a> := &'a ()`,
// it is ambiguous whether `Opaque<'a> := &'a ()` or `Opaque<'a> := &'static ()`
mod mod4 {
    type Opaque<'a> = impl super::Trait<'a, 'a>;
    fn test<'a: 'static>() -> Opaque<'a> {}
    //~^ ERROR expected generic lifetime parameter, found `'static`
}

fn main() {}
