diff options
Diffstat (limited to 'src/test/ui/const-generics/generic_const_exprs/issue-86710.rs')
| -rw-r--r-- | src/test/ui/const-generics/generic_const_exprs/issue-86710.rs | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/src/test/ui/const-generics/generic_const_exprs/issue-86710.rs b/src/test/ui/const-generics/generic_const_exprs/issue-86710.rs deleted file mode 100644 index bdd8a21b3b9..00000000000 --- a/src/test/ui/const-generics/generic_const_exprs/issue-86710.rs +++ /dev/null @@ -1,73 +0,0 @@ -// build-pass - -#![allow(incomplete_features)] -#![feature(generic_const_exprs)] - -use std::marker::PhantomData; - -fn main() { - let x = FooImpl::<BarImpl<1>> { phantom: PhantomData }; - let _ = x.foo::<BarImpl<1>>(); -} - -trait Foo<T> -where - T: Bar, -{ - fn foo<U>(&self) - where - T: Operation<U>, - <T as Operation<U>>::Output: Bar; -} - -struct FooImpl<T> -where - T: Bar, -{ - phantom: PhantomData<T>, -} - -impl<T> Foo<T> for FooImpl<T> -where - T: Bar, -{ - fn foo<U>(&self) - where - T: Operation<U>, - <T as Operation<U>>::Output: Bar, - { - <<T as Operation<U>>::Output as Bar>::error_occurs_here(); - } -} - -trait Bar { - fn error_occurs_here(); -} - -struct BarImpl<const N: usize>; - -impl<const N: usize> Bar for BarImpl<N> { - fn error_occurs_here() {} -} - -trait Operation<Rhs> { - type Output; -} - -//// Part-A: This causes error. -impl<const M: usize, const N: usize> Operation<BarImpl<M>> for BarImpl<N> -where - BarImpl<{ N + M }>: Sized, -{ - type Output = BarImpl<{ N + M }>; -} - -//// Part-B: This doesn't cause error. -// impl<const M: usize, const N: usize> Operation<BarImpl<M>> for BarImpl<N> { -// type Output = BarImpl<M>; -// } - -//// Part-C: This also doesn't cause error. -// impl<const M: usize, const N: usize> Operation<BarImpl<M>> for BarImpl<N> { -// type Output = BarImpl<{ M }>; -// } |
