about summary refs log tree commit diff
path: root/src/libsyntax_expand
diff options
context:
space:
mode:
authorOliver Scherer <github35764891676564198441@oli-obk.de>2019-12-08 01:43:10 +0100
committerOliver Scherer <github35764891676564198441@oli-obk.de>2019-12-13 11:27:02 +0100
commit5e17e3988165d3245e38af0b1c40cde47699f6a7 (patch)
tree306b98ec54bf16d1327e0264b51d356bdba02d9b /src/libsyntax_expand
parentd75c7530f38b56c4d916195570cdcd18c12ce273 (diff)
Require stable/unstable annotations for the constness of all stable functions with a `const` modifier
Diffstat (limited to 'src/libsyntax_expand')
-rw-r--r--src/libsyntax_expand/base.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libsyntax_expand/base.rs b/src/libsyntax_expand/base.rs
index a4449ca5b1d..c7dce93f91b 100644
--- a/src/libsyntax_expand/base.rs
+++ b/src/libsyntax_expand/base.rs
@@ -775,6 +775,10 @@ impl SyntaxExtension {
         }
 
         let is_builtin = attr::contains_name(attrs, sym::rustc_builtin_macro);
+        let (stability, const_stability) = attr::find_stability(&sess, attrs, span);
+        if const_stability.is_some() {
+            sess.span_diagnostic.span_err(span, "macros can't have const stability attributes");
+        }
 
         SyntaxExtension {
             kind,
@@ -782,7 +786,7 @@ impl SyntaxExtension {
             allow_internal_unstable,
             allow_internal_unsafe: attr::contains_name(attrs, sym::allow_internal_unsafe),
             local_inner_macros,
-            stability: attr::find_stability(&sess, attrs, span),
+            stability,
             deprecation: attr::find_deprecation(&sess, attrs, span),
             helper_attrs,
             edition,