blob: 2de9e6a857eadf348e1064004addedce77fb0df9 [file] [log] [blame]
//@ revisions: pass fail
//@[pass] check-pass
#![allow(internal_features)]
#![feature(staged_api)]
#![allow(dead_code)]
#![unstable(feature = "feat_foo", issue = "none" )]
/// In staged-api crate, impl that is marked as unstable with
/// feature name `feat_moo` should not be accessible
/// if only `feat_foo` is enabled.
pub trait Foo {
fn foo();
}
pub trait Moo {
fn moo();
}
pub struct Bar;
#[unstable_feature_bound(feat_foo)]
impl Foo for Bar {
fn foo() {}
}
#[unstable_feature_bound(feat_moo)]
impl Moo for Bar {
fn moo() {}
}
#[cfg_attr(fail, unstable_feature_bound(feat_foo))]
#[cfg_attr(pass, unstable_feature_bound(feat_foo, feat_moo))]
fn bar() {
Bar::foo();
Bar::moo();
//[fail]~^ ERROR unstable feature `feat_moo` is used without being enabled.
}
fn main() {}