#![feature(associated_const_equality)] | |
#![allow(unused)] | |
pub trait Foo { | |
const N: usize; | |
} | |
pub trait FooTy { | |
type T; | |
} | |
pub struct Bar; | |
impl Foo for Bar { | |
const N: usize = 3; | |
} | |
impl FooTy for Bar { | |
type T = usize; | |
} | |
fn foo<F: Foo<N = usize>>() {} | |
//~^ ERROR expected constant, found type | |
fn foo2<F: FooTy<T = 3usize>>() {} | |
//~^ ERROR expected type, found constant | |
fn main() { | |
foo::<Bar>(); | |
foo2::<Bar>(); | |
} |