mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-03 18:57:19 +00:00
36 lines
1.1 KiB
Rust
36 lines
1.1 KiB
Rust
#![allow(internal_features)]
|
|
#![feature(staged_api)]
|
|
#![allow(dead_code)]
|
|
#![stable(feature = "a", since = "1.1.1" )]
|
|
|
|
/// If #[unstable(..)] and #[unstable_feature_name(..)] have the same feature name,
|
|
/// the error should not be thrown as it can effectively mark an impl as unstable.
|
|
///
|
|
/// If the feature name in #[feature] does not exist in #[unstable_feature_bound(..)]
|
|
/// an error should still be thrown because that feature will not be unstable.
|
|
|
|
#[stable(feature = "a", since = "1.1.1")]
|
|
trait Moo {}
|
|
#[stable(feature = "a", since = "1.1.1")]
|
|
trait Foo {}
|
|
#[stable(feature = "a", since = "1.1.1")]
|
|
trait Boo {}
|
|
#[stable(feature = "a", since = "1.1.1")]
|
|
pub struct Bar;
|
|
|
|
|
|
#[unstable(feature = "feat_moo", issue = "none")]
|
|
#[unstable_feature_bound(feat_foo)] //~^ ERROR: an `#[unstable]` annotation here has no effect
|
|
impl Moo for Bar {}
|
|
|
|
#[unstable(feature = "feat_foo", issue = "none")]
|
|
#[unstable_feature_bound(feat_foo)]
|
|
impl Foo for Bar {}
|
|
|
|
|
|
#[unstable(feature = "feat_foo", issue = "none")]
|
|
#[unstable_feature_bound(feat_foo, feat_bar)]
|
|
impl Boo for Bar {}
|
|
|
|
fn main() {}
|