23 lines
434 B
Rust
23 lines
434 B
Rust
|
// check-pass
|
||
|
|
||
|
#![feature(generic_const_items, associated_const_equality)]
|
||
|
#![allow(incomplete_features)]
|
||
|
|
||
|
trait Owner {
|
||
|
const C<const N: u32>: u32;
|
||
|
const K<const N: u32>: u32;
|
||
|
}
|
||
|
|
||
|
impl Owner for () {
|
||
|
const C<const N: u32>: u32 = N;
|
||
|
const K<const N: u32>: u32 = N + 1;
|
||
|
}
|
||
|
|
||
|
fn take0<const N: u32>(_: impl Owner<C<N> = { N }>) {}
|
||
|
fn take1(_: impl Owner<K<99> = 100>) {}
|
||
|
|
||
|
fn main() {
|
||
|
take0::<128>(());
|
||
|
take1(());
|
||
|
}
|