Skip to content

Commit a1b51aa

Browse files
authored
Rollup merge of #143456 - joshtriplett:mbe-unused-rules-bitset, r=lqd
mbe: Change `unused_macro_rules` to a `DenseBitSet` Now that it only contains indexes, and no other information, a bitset provides a more compact and simpler representation. This builds on <#143416>. Only the last commit is new.
2 parents 11d8667 + 8ee1e98 commit a1b51aa

File tree

5 files changed

+9
-6
lines changed

5 files changed

+9
-6
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4474,6 +4474,7 @@ dependencies = [
44744474
"rustc_feature",
44754475
"rustc_fluent_macro",
44764476
"rustc_hir",
4477+
"rustc_index",
44774478
"rustc_macros",
44784479
"rustc_metadata",
44794480
"rustc_middle",

compiler/rustc_resolve/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ rustc_expand = { path = "../rustc_expand" }
1919
rustc_feature = { path = "../rustc_feature" }
2020
rustc_fluent_macro = { path = "../rustc_fluent_macro" }
2121
rustc_hir = { path = "../rustc_hir" }
22+
rustc_index = { path = "../rustc_index" }
2223
rustc_macros = { path = "../rustc_macros" }
2324
rustc_metadata = { path = "../rustc_metadata" }
2425
rustc_middle = { path = "../rustc_middle" }

compiler/rustc_resolve/src/build_reduced_graph.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use rustc_expand::base::ResolverExpand;
1818
use rustc_expand::expand::AstFragment;
1919
use rustc_hir::def::{self, *};
2020
use rustc_hir::def_id::{CRATE_DEF_ID, DefId, LocalDefId};
21+
use rustc_index::bit_set::DenseBitSet;
2122
use rustc_metadata::creader::LoadedMacro;
2223
use rustc_middle::metadata::ModChild;
2324
use rustc_middle::ty::Feed;
@@ -1202,9 +1203,8 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
12021203
fn insert_unused_macro(&mut self, ident: Ident, def_id: LocalDefId, node_id: NodeId) {
12031204
if !ident.as_str().starts_with('_') {
12041205
self.r.unused_macros.insert(def_id, (node_id, ident));
1205-
for rule_i in 0..self.r.macro_map[&def_id.to_def_id()].nrules {
1206-
self.r.unused_macro_rules.entry(node_id).or_default().insert(rule_i);
1207-
}
1206+
let nrules = self.r.macro_map[&def_id.to_def_id()].nrules;
1207+
self.r.unused_macro_rules.insert(node_id, DenseBitSet::new_filled(nrules));
12081208
}
12091209
}
12101210

compiler/rustc_resolve/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ use rustc_hir::def::{
5757
use rustc_hir::def_id::{CRATE_DEF_ID, CrateNum, DefId, LOCAL_CRATE, LocalDefId, LocalDefIdMap};
5858
use rustc_hir::definitions::DisambiguatorState;
5959
use rustc_hir::{PrimTy, TraitCandidate};
60+
use rustc_index::bit_set::DenseBitSet;
6061
use rustc_metadata::creader::{CStore, CrateLoader};
6162
use rustc_middle::metadata::ModChild;
6263
use rustc_middle::middle::privacy::EffectiveVisibilities;
@@ -1135,7 +1136,7 @@ pub struct Resolver<'ra, 'tcx> {
11351136
ast_transform_scopes: FxHashMap<LocalExpnId, Module<'ra>>,
11361137
unused_macros: FxIndexMap<LocalDefId, (NodeId, Ident)>,
11371138
/// A map from the macro to all its potentially unused arms.
1138-
unused_macro_rules: FxIndexMap<NodeId, UnordSet<usize>>,
1139+
unused_macro_rules: FxIndexMap<NodeId, DenseBitSet<usize>>,
11391140
proc_macro_stubs: FxHashSet<LocalDefId>,
11401141
/// Traces collected during macro resolution and validated when it's complete.
11411142
single_segment_macro_resolutions:

compiler/rustc_resolve/src/macros.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ impl<'ra, 'tcx> ResolverExpand for Resolver<'ra, 'tcx> {
334334

335335
fn record_macro_rule_usage(&mut self, id: NodeId, rule_i: usize) {
336336
if let Some(rules) = self.unused_macro_rules.get_mut(&id) {
337-
rules.remove(&rule_i);
337+
rules.remove(rule_i);
338338
}
339339
}
340340

@@ -359,7 +359,7 @@ impl<'ra, 'tcx> ResolverExpand for Resolver<'ra, 'tcx> {
359359
let SyntaxExtensionKind::LegacyBang(ref ext) = m.ext.kind else {
360360
continue;
361361
};
362-
for &arm_i in unused_arms.to_sorted_stable_ord() {
362+
for arm_i in unused_arms.iter() {
363363
if let Some((ident, rule_span)) = ext.get_unused_rule(arm_i) {
364364
self.lint_buffer.buffer_lint(
365365
UNUSED_MACRO_RULES,

0 commit comments

Comments
 (0)