| //@ revisions: cfail |
| #![feature(generic_const_exprs, adt_const_params)] |
| #![allow(incomplete_features)] |
| |
| use std::marker::ConstParamTy; |
| |
| #[derive(PartialEq, Eq, ConstParamTy)] |
| struct NonZeroUsize(usize); |
| |
| impl NonZeroUsize { |
| const fn get(self) -> usize { |
| self.0 |
| } |
| } |
| |
| // regression test for #77650 |
| struct C<T, const N: NonZeroUsize>([T; N.get()]) |
| where |
| [T; N.get()]: Sized; |
| impl<'a, const N: NonZeroUsize, A, B: PartialEq<A>> PartialEq<&'a [A]> for C<B, N> |
| where |
| [B; N.get()]: Sized, |
| { |
| fn eq(&self, other: &&'a [A]) -> bool { |
| self.0 == other |
| //~^ error: can't compare |
| } |
| } |
| |
| fn main() {} |