| //@ aux-build:staged-api.rs |
| |
| // Ensure that we enforce const stability of traits in `~const`/`const` bounds. |
| |
| #![feature(const_trait_impl)] |
| |
| use std::ops::Deref; |
| |
| extern crate staged_api; |
| use staged_api::MyTrait; |
| |
| #[const_trait] |
| trait Foo: ~const MyTrait { |
| //~^ ERROR use of unstable const library feature `unstable` |
| type Item: ~const MyTrait; |
| //~^ ERROR use of unstable const library feature `unstable` |
| } |
| |
| const fn where_clause<T>() where T: ~const MyTrait {} |
| //~^ ERROR use of unstable const library feature `unstable` |
| |
| const fn nested<T>() where T: Deref<Target: ~const MyTrait> {} |
| //~^ ERROR use of unstable const library feature `unstable` |
| |
| const fn rpit() -> impl ~const MyTrait { Local } |
| //~^ ERROR use of unstable const library feature `unstable` |
| |
| struct Local; |
| impl const MyTrait for Local { |
| //~^ ERROR use of unstable const library feature `unstable` |
| fn func() {} |
| } |
| |
| fn main() {} |