Better group RFC ui tests together
This commit is contained in:
parent
7452822843
commit
9d3482c403
543 changed files with 145 additions and 145 deletions
|
@ -0,0 +1,39 @@
|
|||
// Tests that a non-const default impl can be specialized by a const trait impl,
|
||||
// but that the default impl cannot be used in a const context.
|
||||
|
||||
// run-pass
|
||||
|
||||
#![feature(const_trait_impl)]
|
||||
#![feature(min_specialization)]
|
||||
|
||||
#[const_trait]
|
||||
trait Value {
|
||||
fn value() -> u32;
|
||||
}
|
||||
|
||||
const fn get_value<T: ~const Value>() -> u32 {
|
||||
T::value()
|
||||
}
|
||||
|
||||
impl<T> Value for T {
|
||||
default fn value() -> u32 {
|
||||
println!("You can't do that (constly)");
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
struct FortyTwo;
|
||||
|
||||
impl const Value for FortyTwo {
|
||||
fn value() -> u32 {
|
||||
42
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let zero = get_value::<()>();
|
||||
assert_eq!(zero, 0);
|
||||
|
||||
const FORTY_TWO: u32 = get_value::<FortyTwo>();
|
||||
assert_eq!(FORTY_TWO, 42);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue