rust/tests/ui/rfc-2632-const-trait-impl/specialization/issue-95186-specialize-on-tilde-const.rs
Matthew Jasper bd928a0b5e Disallow (min) specialization imps with no items
Such implementations are usually mistakes and are not used in the
compiler or standard library (after this commit) so forbid them with
`min_specialization`.
2023-05-05 16:19:18 +01:00

50 lines
658 B
Rust

// Tests that `~const` trait bounds can be used to specialize const trait impls.
// check-pass
#![feature(const_trait_impl)]
#![feature(rustc_attrs)]
#![feature(min_specialization)]
#[const_trait]
#[rustc_specialization_trait]
trait Specialize {}
#[const_trait]
trait Foo {
fn foo();
}
impl<T> const Foo for T {
default fn foo() {}
}
impl<T> const Foo for T
where
T: ~const Specialize,
{
fn foo() {}
}
#[const_trait]
trait Bar {
fn bar() {}
}
impl<T> const Bar for T
where
T: ~const Foo,
{
default fn bar() {}
}
impl<T> const Bar for T
where
T: ~const Foo,
T: ~const Specialize,
{
fn bar() {}
}
fn main() {}