Rollup merge of #152431 - oli-obk:limited_stability_attr, r=jdonszelmann

Restrict the set of things that const stability can be applied to

r? @jdonszelmann
This commit is contained in:
Matthias Krüger 2026-02-11 13:48:47 +01:00 committed by GitHub
commit 88eda646f2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 26 additions and 35 deletions

View file

@ -962,15 +962,6 @@ impl SyntaxExtension {
let stability = find_attr!(attrs, AttributeKind::Stability { stability, .. } => *stability);
// FIXME(jdonszelmann): make it impossible to miss the or_else in the typesystem
if let Some(sp) =
find_attr!(attrs, AttributeKind::RustcConstStability { span, .. } => *span)
{
sess.dcx().emit_err(errors::MacroConstStability {
span: sp,
head_span: sess.source_map().guess_head_span(span),
});
}
if let Some(sp) = find_attr!(attrs, AttributeKind::RustcBodyStability{ span, .. } => *span)
{
sess.dcx().emit_err(errors::MacroBodyStability {

View file

@ -80,16 +80,6 @@ pub(crate) struct ResolveRelativePath {
pub path: String,
}
#[derive(Diagnostic)]
#[diag("macros cannot have const stability attributes")]
pub(crate) struct MacroConstStability {
#[primary_span]
#[label("invalid const stability attribute")]
pub span: Span,
#[label("const stability attribute affects this macro")]
pub head_span: Span,
}
#[derive(Diagnostic)]
#[diag("macros cannot have body stability attributes")]
pub(crate) struct MacroBodyStability {