rust/tests/ui/traits/next-solver/const-param-placeholder.rs

22 lines
399 B
Rust

// compile-flags: -Znext-solver
// 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() {}