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