granite-rust/src/test/ui/rfc-2632-const-trait-impl/tilde-const-invalid-places.rs

39 lines
958 B
Rust
Raw Normal View History

2021-08-25 14:30:09 +00:00
#![feature(const_trait_impl)]
#![feature(associated_type_bounds)]
trait T {}
struct S;
impl T for S {}
fn rpit() -> impl ~const T { S }
//~^ ERROR `~const` is not allowed
fn apit(_: impl ~const T) {}
//~^ ERROR `~const` is not allowed
fn rpit_assoc_bound() -> impl IntoIterator<Item: ~const T> { Some(S) }
//~^ ERROR `~const` is not allowed
fn apit_assoc_bound(_: impl IntoIterator<Item: ~const T>) {}
//~^ ERROR `~const` is not allowed
fn generic<T: ~const T>() {}
//~^ ERROR `~const` is not allowed
fn where_clause<T>() where T: ~const T {}
//~^ ERROR `~const` is not allowed
impl ~const T {}
//~^ ERROR `~const` is not allowed
fn trait_object() -> &'static dyn ~const T { &S }
//~^ ERROR `~const` is not allowed
fn trait_object_in_apit(_: impl IntoIterator<Item = Box<dyn ~const T>>) {}
//~^ ERROR `~const` is not allowed
struct S<T: ~const ?Sized>(std::marker::PhantomData<T>);
//~^ ERROR `~const` and `?` are mutually exclusive
fn main() {}