X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=compiler%2Frustc_ast_passes%2Fsrc%2Ffeature_gate.rs;h=097bd07c74ce8a5ba6dca07e3f11d9bb113c423e;hb=38478ea0cda8c7e2a4e8e841f97910bcb6d08ef3;hp=6c44fb0df236377baef7a736a6425b12f87f4eef;hpb=354e014b84ce2c39b88049d83ae5b9dae73b1047;p=rust.git diff --git a/compiler/rustc_ast_passes/src/feature_gate.rs b/compiler/rustc_ast_passes/src/feature_gate.rs index 6c44fb0df23..097bd07c74c 100644 --- a/compiler/rustc_ast_passes/src/feature_gate.rs +++ b/compiler/rustc_ast_passes/src/feature_gate.rs @@ -420,6 +420,24 @@ macro_rules! gate_modifier { ($($name:literal => $feature:ident)*) => { } } } + + // Emit errors for non-staged-api crates. + if !self.features.staged_api { + if attr.has_name(sym::rustc_deprecated) + || attr.has_name(sym::unstable) + || attr.has_name(sym::stable) + || attr.has_name(sym::rustc_const_unstable) + || attr.has_name(sym::rustc_const_stable) + { + struct_span_err!( + self.sess, + attr.span, + E0734, + "stability attributes may not be used outside of the standard library", + ) + .emit(); + } + } } fn visit_item(&mut self, i: &'a ast::Item) {