2022-02-14 10:10:22 -06:00
|
|
|
// this used to cause stack overflows
|
|
|
|
|
|
|
|
trait Hrtb<'a> {
|
|
|
|
type Assoc;
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'a> Hrtb<'a> for () {
|
|
|
|
type Assoc = ();
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'a> Hrtb<'a> for &'a () {
|
|
|
|
type Assoc = ();
|
|
|
|
}
|
|
|
|
|
|
|
|
fn make_impl() -> impl for<'a> Hrtb<'a, Assoc = impl Send + 'a> {}
|
2022-05-14 04:25:53 -05:00
|
|
|
//~^ ERROR higher kinded lifetime bounds on nested opaque types are not supported yet
|
|
|
|
|
2022-02-14 10:10:22 -06:00
|
|
|
fn make_weird_impl<'b>(x: &'b ()) -> impl for<'a> Hrtb<'a, Assoc = impl Send + 'a> {
|
2022-05-14 04:25:53 -05:00
|
|
|
//~^ ERROR higher kinded lifetime bounds on nested opaque types are not supported yet
|
|
|
|
&()
|
2022-02-14 10:10:22 -06:00
|
|
|
}
|
2022-05-14 04:25:53 -05:00
|
|
|
|
2022-02-14 10:10:22 -06:00
|
|
|
fn make_bad_impl<'b>(x: &'b ()) -> impl for<'a> Hrtb<'a, Assoc = impl Send + 'a> {
|
2022-05-14 04:25:53 -05:00
|
|
|
//~^ ERROR higher kinded lifetime bounds on nested opaque types are not supported yet
|
|
|
|
x
|
2022-02-14 10:10:22 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|