rust/tests/ui/rfcs/rfc-2632-const-trait-impl/trait-where-clause.rs
Raekye 884af362f2 Validate ~const trait bounds on associated fns.
Previously, any associated function could have `~const` trait bounds on
generic parameters, which could lead to ICEs when these bounds were used
on associated functions of non-`#[const_trait] trait` or
non-`impl const` blocks.

Includes changes as per @fee1-dead's comments in #116210.
2023-09-30 19:00:45 -04:00

29 lines
448 B
Rust

#![feature(const_trait_impl)]
#[const_trait]
trait Bar {}
trait Foo {
fn a();
fn b() where Self: ~const Bar;
//~^ ERROR `~const` is not allowed here
fn c<T: ~const Bar>();
//~^ ERROR `~const` is not allowed here
}
fn test1<T: Foo>() {
T::a();
T::b();
//~^ ERROR the trait bound
T::c::<T>();
//~^ ERROR the trait bound
}
fn test2<T: Foo + Bar>() {
T::a();
T::b();
T::c::<T>();
}
fn main() {}