32 lines
496 B
Rust
32 lines
496 B
Rust
|
#![feature(const_trait_impl, min_specialization, rustc_attrs)]
|
||
|
|
||
|
#[rustc_specialization_trait]
|
||
|
#[const_trait]
|
||
|
pub trait Sup {}
|
||
|
|
||
|
impl const Sup for () {}
|
||
|
|
||
|
#[const_trait]
|
||
|
pub trait A {
|
||
|
fn a() -> u32;
|
||
|
}
|
||
|
|
||
|
impl<T: Default> A for T {
|
||
|
default fn a() -> u32 {
|
||
|
2
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl<T: Default + ~const Sup> const A for T {
|
||
|
fn a() -> u32 {
|
||
|
3
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const fn generic<T: Default>() {
|
||
|
<T as A>::a();
|
||
|
//~^ ERROR: the trait bound `T: ~const Sup` is not satisfied
|
||
|
}
|
||
|
|
||
|
fn main() {}
|