diff options
Diffstat (limited to 'src/test/ui/traits/issue-52893.rs')
-rw-r--r-- | src/test/ui/traits/issue-52893.rs | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/src/test/ui/traits/issue-52893.rs b/src/test/ui/traits/issue-52893.rs deleted file mode 100644 index d72598d5d..000000000 --- a/src/test/ui/traits/issue-52893.rs +++ /dev/null @@ -1,57 +0,0 @@ -// check-fail -// -// regression test for issue 52893 -trait At<Name> { - type AtRes; - fn at(self) -> Self::AtRes; -} - -trait Push<T> { - type PushRes; - fn push(self, other: T) -> Self::PushRes; -} - -trait AddClass<Name, F> { - type AddRes; - fn init(self, func: F); -} - -trait ToRef { - type RefRes; - fn to_ref(&self) -> Self::RefRes; -} - -struct Class<P>(P); - -impl<P> Class<P> { - fn with<Name, F>(self) -> <Self as AddClass<Name, F>>::AddRes - where - Self: AddClass<Name, F>, - { - todo!() - } - - fn from<F>(self) -> <Self as AddClass<P, F>>::AddRes - where - Self: AddClass<P, F>, - { - todo!() - } -} - -impl<F, Name, P> AddClass<Name, F> for Class<P> -where - Self: At<Name>, - <Self as At<Name>>::AtRes: Push<F>, - <<Self as At<Name>>::AtRes as Push<F>>::PushRes: ToRef<RefRes = Self> + Push<F>, -{ - type AddRes = (); - - fn init(self, func: F) { - let builder = self.at().push(func); - let output = builder.to_ref(); - builder.push(output); //~ ERROR mismatched types [E0308] - } -} - -fn main() {} |