Open
Description
Relates to #89970 and potentially to #90808.
#![feature(generic_associated_types)]
trait MyTrait {
type AT<'a> where Self: 'a;
fn selfreffing<'a>(&'a self) -> Self::AT<'a> { unimplemented!(); }
}
struct Inner;
impl MyTrait for Inner {
type AT<'b> where Self: 'b = ();
}
struct Outer<'a, T>(&'a T);
impl<'a, T: MyTrait> MyTrait for Outer<'a, T> {
type AT<'b> = T::AT<'b>;
// type AT<'b> where T: 'b = T::AT<'b>; // suggested
// type AT<'b> where Self: 'b = T::AT<'b>; // compiles
}