Skip to content

Commit 6ad3389

Browse files
committed
Use SingletonCacheSelector where possible
1 parent e056cb8 commit 6ad3389

File tree

1 file changed

+20
-0
lines changed
  • compiler/rustc_middle/src/query

1 file changed

+20
-0
lines changed

compiler/rustc_middle/src/query/mod.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ rustc_queries! {
2121
/// To avoid this fate, do not call `tcx.hir().krate()`; instead,
2222
/// prefer wrappers like `tcx.visit_all_items_in_krate()`.
2323
query hir_crate(key: ()) -> &'tcx Crate<'tcx> {
24+
storage(SingletonCacheSelector)
2425
eval_always
2526
no_hash
2627
desc { "get the crate HIR" }
@@ -29,6 +30,7 @@ rustc_queries! {
2930
/// The indexed HIR. This can be conveniently accessed by `tcx.hir()`.
3031
/// Avoid calling this query directly.
3132
query index_hir(_: ()) -> &'tcx crate::hir::IndexedHir<'tcx> {
33+
storage(SingletonCacheSelector)
3234
eval_always
3335
no_hash
3436
desc { "index HIR" }
@@ -115,6 +117,7 @@ rustc_queries! {
115117
}
116118

117119
query analysis(key: ()) -> Result<(), ErrorReported> {
120+
storage(SingletonCacheSelector)
118121
eval_always
119122
desc { "running analysis passes on this crate" }
120123
}
@@ -701,6 +704,7 @@ rustc_queries! {
701704
}
702705

703706
query typeck_item_bodies(_: ()) -> () {
707+
storage(SingletonCacheSelector)
704708
desc { "type-checking all item bodies" }
705709
}
706710

@@ -769,6 +773,7 @@ rustc_queries! {
769773
/// Not meant to be used directly outside of coherence.
770774
query crate_inherent_impls_overlap_check(_: ())
771775
-> () {
776+
storage(SingletonCacheSelector)
772777
eval_always
773778
desc { "check for overlap between inherent impls defined in this crate" }
774779
}
@@ -862,10 +867,12 @@ rustc_queries! {
862867

863868
/// Performs part of the privacy check and computes "access levels".
864869
query privacy_access_levels(_: ()) -> &'tcx AccessLevels {
870+
storage(SingletonCacheSelector)
865871
eval_always
866872
desc { "privacy access levels" }
867873
}
868874
query check_private_in_public(_: ()) -> () {
875+
storage(SingletonCacheSelector)
869876
eval_always
870877
desc { "checking for private elements in public interfaces" }
871878
}
@@ -981,6 +988,7 @@ rustc_queries! {
981988
///
982989
/// [`LOCAL_CRATE`]: rustc_hir::def_id::LOCAL_CRATE
983990
query all_local_trait_impls(_: ()) -> &'tcx BTreeMap<DefId, Vec<LocalDefId>> {
991+
storage(SingletonCacheSelector)
984992
desc { "local trait impls" }
985993
}
986994

@@ -1084,6 +1092,7 @@ rustc_queries! {
10841092
}
10851093

10861094
query dependency_formats(_: ()) -> Lrc<crate::middle::dependency_format::Dependencies> {
1095+
storage(SingletonCacheSelector)
10871096
desc { "get the linkage format of all dependencies" }
10881097
}
10891098

@@ -1229,12 +1238,15 @@ rustc_queries! {
12291238
/// Identifies the entry-point (e.g., the `main` function) for a given
12301239
/// crate, returning `None` if there is no entry point (such as for library crates).
12311240
query entry_fn(_: ()) -> Option<(DefId, EntryFnType)> {
1241+
storage(SingletonCacheSelector)
12321242
desc { "looking up the entry function of a crate" }
12331243
}
12341244
query plugin_registrar_fn(_: ()) -> Option<LocalDefId> {
1245+
storage(SingletonCacheSelector)
12351246
desc { "looking up the plugin registrar for a crate" }
12361247
}
12371248
query proc_macro_decls_static(_: ()) -> Option<LocalDefId> {
1249+
storage(SingletonCacheSelector)
12381250
desc { "looking up the derive registrar for a crate" }
12391251
}
12401252
query crate_disambiguator(_: CrateNum) -> CrateDisambiguator {
@@ -1411,6 +1423,7 @@ rustc_queries! {
14111423
desc { "looking at the source for a crate" }
14121424
}
14131425
query postorder_cnums(_: ()) -> &'tcx [CrateNum] {
1426+
storage(SingletonCacheSelector)
14141427
eval_always
14151428
desc { "generating a postorder list of CrateNums" }
14161429
}
@@ -1430,6 +1443,7 @@ rustc_queries! {
14301443
desc { |tcx| "maybe_unused_trait_import for `{}`", tcx.def_path_str(def_id.to_def_id()) }
14311444
}
14321445
query maybe_unused_extern_crates(_: ()) -> &'tcx [(LocalDefId, Span)] {
1446+
storage(SingletonCacheSelector)
14331447
eval_always
14341448
desc { "looking up all possibly unused extern crates" }
14351449
}
@@ -1445,6 +1459,7 @@ rustc_queries! {
14451459
desc { "calculating the stability index for the local crate" }
14461460
}
14471461
query all_crate_nums(_: ()) -> &'tcx [CrateNum] {
1462+
storage(SingletonCacheSelector)
14481463
eval_always
14491464
desc { "fetching all foreign CrateNum instances" }
14501465
}
@@ -1453,6 +1468,7 @@ rustc_queries! {
14531468
/// (i.e., including those from subcrates). This is used only for
14541469
/// error reporting.
14551470
query all_traits(_: ()) -> &'tcx [DefId] {
1471+
storage(SingletonCacheSelector)
14561472
desc { "fetching all foreign and local traits" }
14571473
}
14581474

@@ -1467,6 +1483,7 @@ rustc_queries! {
14671483
}
14681484

14691485
query collect_and_partition_mono_items(_: ()) -> (&'tcx DefIdSet, &'tcx [CodegenUnit<'tcx>]) {
1486+
storage(SingletonCacheSelector)
14701487
eval_always
14711488
desc { "collect_and_partition_mono_items" }
14721489
}
@@ -1476,6 +1493,7 @@ rustc_queries! {
14761493

14771494
/// All items participating in code generation together with items inlined into them.
14781495
query codegened_and_inlined_items(_: ()) -> &'tcx DefIdSet {
1496+
storage(SingletonCacheSelector)
14791497
eval_always
14801498
desc { "codegened_and_inlined_items" }
14811499
}
@@ -1491,10 +1509,12 @@ rustc_queries! {
14911509
}
14921510
}
14931511
query backend_optimization_level(_: ()) -> OptLevel {
1512+
storage(SingletonCacheSelector)
14941513
desc { "optimization level used by backend" }
14951514
}
14961515

14971516
query output_filenames(_: ()) -> Arc<OutputFilenames> {
1517+
storage(SingletonCacheSelector)
14981518
eval_always
14991519
desc { "output_filenames" }
15001520
}

0 commit comments

Comments
 (0)