// check-pass #![feature(impl_trait_in_assoc_type)] pub trait Stream { type Item; } impl Stream for () { type Item = i32; } trait Yay { type InnerStream<'s>: Stream + 's; fn foo<'s>() -> Self::InnerStream<'s>; } impl<'a> Yay<&'a ()> for () { type InnerStream<'s> = impl Stream + 's; //^ ERROR does not fulfill the required lifetime fn foo<'s>() -> Self::InnerStream<'s> { () } } fn main() {}