22 lines
405 B
Rust
22 lines
405 B
Rust
|
// compile-flags: -Ztrait-solver=next
|
||
|
// revisions: pass fail
|
||
|
//[pass] check-pass
|
||
|
|
||
|
struct Wrapper<T, const N: usize>([T; N]);
|
||
|
|
||
|
trait Foo {}
|
||
|
fn needs_foo<F: Foo>() {}
|
||
|
|
||
|
#[cfg(fail)]
|
||
|
impl<T> Foo for [T; 1] {}
|
||
|
|
||
|
#[cfg(pass)]
|
||
|
impl<T, const N: usize> Foo for [T; N] {}
|
||
|
|
||
|
fn test<T, const N: usize>() {
|
||
|
needs_foo::<[T; N]>();
|
||
|
//[fail]~^ ERROR the trait bound `[T; N]: Foo` is not satisfied
|
||
|
}
|
||
|
|
||
|
fn main() {}
|