20 lines
315 B
Rust
20 lines
315 B
Rust
|
#![feature(const_trait_impl)]
|
||
|
|
||
|
#[const_trait]
|
||
|
trait Tr {
|
||
|
fn a(self) -> i32;
|
||
|
}
|
||
|
|
||
|
impl Tr for () {
|
||
|
fn a(self) -> i32 { 42 }
|
||
|
}
|
||
|
|
||
|
const fn need_const_closure<T: ~const FnOnce(()) -> i32>(x: T) -> i32 {
|
||
|
x(())
|
||
|
}
|
||
|
|
||
|
const _: () = assert!(need_const_closure(Tr::a) == 42);
|
||
|
//~^ ERROR: the trait bound
|
||
|
|
||
|
fn main() {}
|