about summary refs log tree commit diff
path: root/compiler/rustc_attr_data_structures/src/lib.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2025-07-18 16:27:59 +0000
committerbors <bors@rust-lang.org>2025-07-18 16:27:59 +0000
commit8f08b3a32478b8d0507732800ecb548a76e0fd0c (patch)
treeabdd62e27dec75c21bc2569e90a650de0513fb2c /compiler/rustc_attr_data_structures/src/lib.rs
parent82310651b93a594a3fd69015e1562186a080d94c (diff)
parent7662731d75ceb19f6242c61a6812c22809e6adc2 (diff)
downloadrust-8f08b3a32478b8d0507732800ecb548a76e0fd0c.tar.gz
rust-8f08b3a32478b8d0507732800ecb548a76e0fd0c.zip
Auto merge of #143845 - cjgillot:stability-query, r=jieyouxu
Split-up stability_index query

This PR aims to move deprecation and stability processing away from the monolithic `stability_index` query, and directly implement `lookup_{deprecation,stability,body_stability,const_stability}` queries.

The basic idea is to:
- move per-attribute sanity checks into `check_attr.rs`;
- move attribute compatibility checks into the `MissingStabilityAnnotations` visitor;
- progressively dismantle the `Annotator` visitor and the `stability_index` query.

The first commit contains functional change, and now warns when `#[automatically_derived]` is applied on a non-trait impl block. The other commits should not change visible behaviour.

Perf in https://github.com/rust-lang/rust/pull/143845#issuecomment-3066308630 shows small but consistent improvement, except for unused-warnings case. That case being a stress test, I'm leaning towards accepting the regression.

This PR changes `check_attr`, so has a high conflict rate on that file. This should not cause issues for review.
Diffstat (limited to 'compiler/rustc_attr_data_structures/src/lib.rs')
-rw-r--r--compiler/rustc_attr_data_structures/src/lib.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rustc_attr_data_structures/src/lib.rs b/compiler/rustc_attr_data_structures/src/lib.rs
index 8f8ce575a18..ecca0e39063 100644
--- a/compiler/rustc_attr_data_structures/src/lib.rs
+++ b/compiler/rustc_attr_data_structures/src/lib.rs
@@ -24,7 +24,7 @@ use rustc_ast::token::CommentKind;
 use rustc_ast::{AttrStyle, IntTy, UintTy};
 use rustc_ast_pretty::pp::Printer;
 use rustc_span::hygiene::Transparency;
-use rustc_span::{Span, Symbol};
+use rustc_span::{ErrorGuaranteed, Span, Symbol};
 pub use stability::*;
 use thin_vec::ThinVec;
 pub use version::*;
@@ -170,7 +170,7 @@ macro_rules! print_tup {
 }
 
 print_tup!(A B C D E F G H);
-print_skip!(Span, ());
+print_skip!(Span, (), ErrorGuaranteed);
 print_disp!(u16, bool, NonZero<u32>);
 print_debug!(Symbol, UintTy, IntTy, Align, AttrStyle, CommentKind, Transparency);