| //@ check-pass | |
| #![allow(internal_features)] | |
| #![feature(staged_api)] | |
| #![allow(dead_code)] | |
| #![unstable(feature = "feat_foo", issue = "none" )] | |
| /// In staged-api crate, if feat_foo is only needed to use an impl, | |
| /// having both `feat_foo` and `feat_bar` will still make it pass. | |
| pub trait Foo { | |
| fn foo(); | |
| } | |
| pub struct Bar; | |
| // Annotate the impl as unstable. | |
| #[unstable_feature_bound(feat_foo)] | |
| impl Foo for Bar { | |
| fn foo() {} | |
| } | |
| #[unstable_feature_bound(feat_foo, feat_bar)] | |
| fn bar() { | |
| Bar::foo(); | |
| } | |
| fn main() {} |