3 // regression test for issue 52893
6 fn at(self) -> Self::AtRes;
11 fn push(self, other: T) -> Self::PushRes;
14 trait AddClass<Name, F> {
16 fn init(self, func: F);
21 fn to_ref(&self) -> Self::RefRes;
27 fn with<Name, F>(self) -> <Self as AddClass<Name, F>>::AddRes
29 Self: AddClass<Name, F>,
34 fn from<F>(self) -> <Self as AddClass<P, F>>::AddRes
42 impl<F, Name, P> AddClass<Name, F> for Class<P>
45 <Self as At<Name>>::AtRes: Push<F>,
46 <<Self as At<Name>>::AtRes as Push<F>>::PushRes: ToRef<RefRes = Self> + Push<F>,
50 fn init(self, func: F) {
51 let builder = self.at().push(func);
52 let output = builder.to_ref();
53 builder.push(output); //~ ERROR mismatched types [E0308]