//@ check-pass | |
struct Const<const N: usize>; | |
trait Foo<const N: usize> {} | |
impl<const N: usize> Foo<N> for Const<N> {} | |
fn foo_impl(_: impl Foo<3>) {} | |
fn foo_explicit<T: Foo<3>>(_: T) {} | |
fn foo_where<T>(_: T) | |
where | |
T: Foo<3>, | |
{ | |
} | |
fn main() { | |
foo_impl(Const); | |
foo_impl(Const::<3>); | |
foo_explicit(Const); | |
foo_explicit(Const::<3>); | |
foo_where(Const); | |
foo_where(Const::<3>); | |
} |