// Found in a crater run on #118553 //@ dont-require-annotations: NOTE pub trait Debug {} pub trait Service { type Input; type Output; type Error; } pub struct ServiceChain { prev: P, service: S, } impl> Service for ServiceChain where P::Error: 'static, S::Error: 'static, { type Input = P::Input; type Output = S::Output; type Error = (); } pub struct ServiceChainBuilder> { chain: ServiceChain, } impl> ServiceChainBuilder { pub fn next>( //~^ ERROR the associated type //~| ERROR the associated type //~| ERROR the associated type //~| NOTE the associated type //~| NOTE the associated type //~| NOTE the associated type //~| ERROR may not live long enough self, ) -> ServiceChainBuilder, NS> { //~^ ERROR the associated type //~| ERROR the associated type //~| NOTE the associated type //~| NOTE the associated type panic!(); } } fn main() {}