@@ -21,6 +21,7 @@ rustc_queries! {
21
21
/// To avoid this fate, do not call `tcx.hir().krate()`; instead,
22
22
/// prefer wrappers like `tcx.visit_all_items_in_krate()`.
23
23
query hir_crate( key: ( ) ) -> & ' tcx Crate <' tcx> {
24
+ storage( SingletonCacheSelector )
24
25
eval_always
25
26
no_hash
26
27
desc { "get the crate HIR" }
@@ -29,6 +30,7 @@ rustc_queries! {
29
30
/// The indexed HIR. This can be conveniently accessed by `tcx.hir()`.
30
31
/// Avoid calling this query directly.
31
32
query index_hir( _: ( ) ) -> & ' tcx crate :: hir:: IndexedHir <' tcx> {
33
+ storage( SingletonCacheSelector )
32
34
eval_always
33
35
no_hash
34
36
desc { "index HIR" }
@@ -115,6 +117,7 @@ rustc_queries! {
115
117
}
116
118
117
119
query analysis( key: ( ) ) -> Result <( ) , ErrorReported > {
120
+ storage( SingletonCacheSelector )
118
121
eval_always
119
122
desc { "running analysis passes on this crate" }
120
123
}
@@ -701,6 +704,7 @@ rustc_queries! {
701
704
}
702
705
703
706
query typeck_item_bodies( _: ( ) ) -> ( ) {
707
+ storage( SingletonCacheSelector )
704
708
desc { "type-checking all item bodies" }
705
709
}
706
710
@@ -769,6 +773,7 @@ rustc_queries! {
769
773
/// Not meant to be used directly outside of coherence.
770
774
query crate_inherent_impls_overlap_check( _: ( ) )
771
775
-> ( ) {
776
+ storage( SingletonCacheSelector )
772
777
eval_always
773
778
desc { "check for overlap between inherent impls defined in this crate" }
774
779
}
@@ -862,10 +867,12 @@ rustc_queries! {
862
867
863
868
/// Performs part of the privacy check and computes "access levels".
864
869
query privacy_access_levels( _: ( ) ) -> & ' tcx AccessLevels {
870
+ storage( SingletonCacheSelector )
865
871
eval_always
866
872
desc { "privacy access levels" }
867
873
}
868
874
query check_private_in_public( _: ( ) ) -> ( ) {
875
+ storage( SingletonCacheSelector )
869
876
eval_always
870
877
desc { "checking for private elements in public interfaces" }
871
878
}
@@ -981,6 +988,7 @@ rustc_queries! {
981
988
///
982
989
/// [`LOCAL_CRATE`]: rustc_hir::def_id::LOCAL_CRATE
983
990
query all_local_trait_impls( _: ( ) ) -> & ' tcx BTreeMap <DefId , Vec <LocalDefId >> {
991
+ storage( SingletonCacheSelector )
984
992
desc { "local trait impls" }
985
993
}
986
994
@@ -1084,6 +1092,7 @@ rustc_queries! {
1084
1092
}
1085
1093
1086
1094
query dependency_formats( _: ( ) ) -> Lrc <crate :: middle:: dependency_format:: Dependencies > {
1095
+ storage( SingletonCacheSelector )
1087
1096
desc { "get the linkage format of all dependencies" }
1088
1097
}
1089
1098
@@ -1229,12 +1238,15 @@ rustc_queries! {
1229
1238
/// Identifies the entry-point (e.g., the `main` function) for a given
1230
1239
/// crate, returning `None` if there is no entry point (such as for library crates).
1231
1240
query entry_fn( _: ( ) ) -> Option <( DefId , EntryFnType ) > {
1241
+ storage( SingletonCacheSelector )
1232
1242
desc { "looking up the entry function of a crate" }
1233
1243
}
1234
1244
query plugin_registrar_fn( _: ( ) ) -> Option <LocalDefId > {
1245
+ storage( SingletonCacheSelector )
1235
1246
desc { "looking up the plugin registrar for a crate" }
1236
1247
}
1237
1248
query proc_macro_decls_static( _: ( ) ) -> Option <LocalDefId > {
1249
+ storage( SingletonCacheSelector )
1238
1250
desc { "looking up the derive registrar for a crate" }
1239
1251
}
1240
1252
query crate_disambiguator( _: CrateNum ) -> CrateDisambiguator {
@@ -1411,6 +1423,7 @@ rustc_queries! {
1411
1423
desc { "looking at the source for a crate" }
1412
1424
}
1413
1425
query postorder_cnums( _: ( ) ) -> & ' tcx [ CrateNum ] {
1426
+ storage( SingletonCacheSelector )
1414
1427
eval_always
1415
1428
desc { "generating a postorder list of CrateNums" }
1416
1429
}
@@ -1430,6 +1443,7 @@ rustc_queries! {
1430
1443
desc { |tcx| "maybe_unused_trait_import for `{}`" , tcx. def_path_str( def_id. to_def_id( ) ) }
1431
1444
}
1432
1445
query maybe_unused_extern_crates( _: ( ) ) -> & ' tcx [ ( LocalDefId , Span ) ] {
1446
+ storage( SingletonCacheSelector )
1433
1447
eval_always
1434
1448
desc { "looking up all possibly unused extern crates" }
1435
1449
}
@@ -1445,6 +1459,7 @@ rustc_queries! {
1445
1459
desc { "calculating the stability index for the local crate" }
1446
1460
}
1447
1461
query all_crate_nums( _: ( ) ) -> & ' tcx [ CrateNum ] {
1462
+ storage( SingletonCacheSelector )
1448
1463
eval_always
1449
1464
desc { "fetching all foreign CrateNum instances" }
1450
1465
}
@@ -1453,6 +1468,7 @@ rustc_queries! {
1453
1468
/// (i.e., including those from subcrates). This is used only for
1454
1469
/// error reporting.
1455
1470
query all_traits( _: ( ) ) -> & ' tcx [ DefId ] {
1471
+ storage( SingletonCacheSelector )
1456
1472
desc { "fetching all foreign and local traits" }
1457
1473
}
1458
1474
@@ -1467,6 +1483,7 @@ rustc_queries! {
1467
1483
}
1468
1484
1469
1485
query collect_and_partition_mono_items( _: ( ) ) -> ( & ' tcx DefIdSet , & ' tcx [ CodegenUnit <' tcx>] ) {
1486
+ storage( SingletonCacheSelector )
1470
1487
eval_always
1471
1488
desc { "collect_and_partition_mono_items" }
1472
1489
}
@@ -1476,6 +1493,7 @@ rustc_queries! {
1476
1493
1477
1494
/// All items participating in code generation together with items inlined into them.
1478
1495
query codegened_and_inlined_items( _: ( ) ) -> & ' tcx DefIdSet {
1496
+ storage( SingletonCacheSelector )
1479
1497
eval_always
1480
1498
desc { "codegened_and_inlined_items" }
1481
1499
}
@@ -1491,10 +1509,12 @@ rustc_queries! {
1491
1509
}
1492
1510
}
1493
1511
query backend_optimization_level( _: ( ) ) -> OptLevel {
1512
+ storage( SingletonCacheSelector )
1494
1513
desc { "optimization level used by backend" }
1495
1514
}
1496
1515
1497
1516
query output_filenames( _: ( ) ) -> Arc <OutputFilenames > {
1517
+ storage( SingletonCacheSelector )
1498
1518
eval_always
1499
1519
desc { "output_filenames" }
1500
1520
}
0 commit comments