1 #![feature(const_trait_impl)]
2 #![feature(generic_arg_infer)]
3 #![feature(generic_const_exprs)]
4 #![allow(incomplete_features)]
6 struct Foo<const N: usize>;
8 impl<const N: usize> Foo<N> {
9 fn add<A: ~const Add42>(self) -> Foo<{ A::add(N) }> {
16 fn add(a: usize) -> usize;
19 impl const Add42 for () {
20 fn add(a: usize) -> usize {
25 fn bar<A: ~const Add42, const N: usize>(_: Foo<N>) -> Foo<{ A::add(N) }> {
26 //~^ ERROR `~const` is not allowed here
32 let foo = bar::<(), _>(foo);
33 let _foo = bar::<(), _>(foo);