rust/tests/ui/generic-const-items/associated-const-equality.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

32 lines
675 B
Rust
Raw Normal View History

2023-07-10 03:10:03 +02:00
//@ check-pass
#![feature(generic_const_items, associated_const_equality, adt_const_params)]
2023-07-10 03:10:03 +02:00
#![allow(incomplete_features)]
trait Owner {
const C<const N: u32>: u32;
const K<const N: u32>: u32;
const Q<T>: Maybe<T>;
2023-07-10 03:10:03 +02:00
}
impl Owner for () {
const C<const N: u32>: u32 = N;
const K<const N: u32>: u32 = N + 1;
const Q<T>: Maybe<T> = Maybe::Nothing;
2023-07-10 03:10:03 +02:00
}
fn take0<const N: u32>(_: impl Owner<C<N> = { N }>) {}
fn take1(_: impl Owner<K<99> = 100>) {}
fn take2(_: impl Owner<Q<()> = { Maybe::Just(()) }>) {}
2023-07-10 03:10:03 +02:00
fn main() {
take0::<128>(());
take1(());
}
#[derive(PartialEq, Eq, std::marker::ConstParamTy)]
enum Maybe<T> {
Nothing,
Just(T),
}