@@ -59,6 +59,7 @@ rustc_queries! {
59
59
query hir_module_items( key: LocalDefId ) -> rustc_middle:: hir:: ModuleItems {
60
60
storage( ArenaCacheSelector <' tcx>)
61
61
desc { |tcx| "HIR module items in `{}`" , tcx. def_path_str( key. to_def_id( ) ) }
62
+ cache_on_disk_if { true }
62
63
}
63
64
64
65
/// Gives access to the HIR node for the HIR owner `key`.
@@ -128,6 +129,7 @@ rustc_queries! {
128
129
/// parameter. e.g. `fn example<const N: usize=3>` called on `N` would return `3`.
129
130
query const_param_default( param: DefId ) -> ty:: Const <' tcx> {
130
131
desc { |tcx| "compute const default for a given parameter `{}`" , tcx. def_path_str( param) }
132
+ cache_on_disk_if { param. is_local( ) }
131
133
separate_provide_extern
132
134
}
133
135
@@ -223,6 +225,7 @@ rustc_queries! {
223
225
/// Bounds from the parent (e.g. with nested impl trait) are not included.
224
226
query explicit_item_bounds( key: DefId ) -> & ' tcx [ ( ty:: Predicate <' tcx>, Span ) ] {
225
227
desc { |tcx| "finding item bounds for `{}`" , tcx. def_path_str( key) }
228
+ cache_on_disk_if { key. is_local( ) }
226
229
separate_provide_extern
227
230
}
228
231
@@ -508,13 +511,15 @@ rustc_queries! {
508
511
/// Returns the predicates written explicitly by the user.
509
512
query explicit_predicates_of( key: DefId ) -> ty:: GenericPredicates <' tcx> {
510
513
desc { |tcx| "computing explicit predicates of `{}`" , tcx. def_path_str( key) }
514
+ cache_on_disk_if { key. is_local( ) }
511
515
separate_provide_extern
512
516
}
513
517
514
518
/// Returns the inferred outlives predicates (e.g., for `struct
515
519
/// Foo<'a, T> { x: &'a T }`, this would return `T: 'a`).
516
520
query inferred_outlives_of( key: DefId ) -> & ' tcx [ ( ty:: Predicate <' tcx>, Span ) ] {
517
521
desc { |tcx| "computing inferred outlives predicates of `{}`" , tcx. def_path_str( key) }
522
+ cache_on_disk_if { key. is_local( ) }
518
523
separate_provide_extern
519
524
}
520
525
@@ -526,6 +531,7 @@ rustc_queries! {
526
531
/// additional acyclicity requirements).
527
532
query super_predicates_of( key: DefId ) -> ty:: GenericPredicates <' tcx> {
528
533
desc { |tcx| "computing the super predicates of `{}`" , tcx. def_path_str( key) }
534
+ cache_on_disk_if { key. is_local( ) }
529
535
separate_provide_extern
530
536
}
531
537
@@ -549,6 +555,7 @@ rustc_queries! {
549
555
query trait_def( key: DefId ) -> ty:: TraitDef {
550
556
desc { |tcx| "computing trait definition for `{}`" , tcx. def_path_str( key) }
551
557
storage( ArenaCacheSelector <' tcx>)
558
+ cache_on_disk_if { key. is_local( ) }
552
559
separate_provide_extern
553
560
}
554
561
query adt_def( key: DefId ) -> ty:: AdtDef <' tcx> {
@@ -558,6 +565,7 @@ rustc_queries! {
558
565
}
559
566
query adt_destructor( key: DefId ) -> Option <ty:: Destructor > {
560
567
desc { |tcx| "computing `Drop` impl for `{}`" , tcx. def_path_str( key) }
568
+ cache_on_disk_if { key. is_local( ) }
561
569
separate_provide_extern
562
570
}
563
571
@@ -587,11 +595,13 @@ rustc_queries! {
587
595
/// `is_const_fn` function.
588
596
query impl_constness( key: DefId ) -> hir:: Constness {
589
597
desc { |tcx| "checking if item is const fn: `{}`" , tcx. def_path_str( key) }
598
+ cache_on_disk_if { key. is_local( ) }
590
599
separate_provide_extern
591
600
}
592
601
593
602
query asyncness( key: DefId ) -> hir:: IsAsync {
594
603
desc { |tcx| "checking if the function is async: `{}`" , tcx. def_path_str( key) }
604
+ cache_on_disk_if { key. is_local( ) }
595
605
separate_provide_extern
596
606
}
597
607
@@ -609,12 +619,14 @@ rustc_queries! {
609
619
/// Returns `true` if this is a foreign item (i.e., linked via `extern { ... }`).
610
620
query is_foreign_item( key: DefId ) -> bool {
611
621
desc { |tcx| "checking if `{}` is a foreign item" , tcx. def_path_str( key) }
622
+ cache_on_disk_if { key. is_local( ) }
612
623
separate_provide_extern
613
624
}
614
625
615
626
/// Returns `Some(generator_kind)` if the node pointed to by `def_id` is a generator.
616
627
query generator_kind( def_id: DefId ) -> Option <hir:: GeneratorKind > {
617
628
desc { |tcx| "looking up generator kind of `{}`" , tcx. def_path_str( def_id) }
629
+ cache_on_disk_if { def_id. is_local( ) }
618
630
separate_provide_extern
619
631
}
620
632
@@ -627,6 +639,7 @@ rustc_queries! {
627
639
/// Maps from the `DefId` of a type or region parameter to its (inferred) variance.
628
640
query variances_of( def_id: DefId ) -> & ' tcx [ ty:: Variance ] {
629
641
desc { |tcx| "computing the variances of `{}`" , tcx. def_path_str( def_id) }
642
+ cache_on_disk_if { def_id. is_local( ) }
630
643
separate_provide_extern
631
644
}
632
645
@@ -639,13 +652,15 @@ rustc_queries! {
639
652
/// Maps from an impl/trait `DefId` to a list of the `DefId`s of its items.
640
653
query associated_item_def_ids( key: DefId ) -> & ' tcx [ DefId ] {
641
654
desc { |tcx| "collecting associated items of `{}`" , tcx. def_path_str( key) }
655
+ cache_on_disk_if { key. is_local( ) }
642
656
separate_provide_extern
643
657
}
644
658
645
659
/// Maps from a trait item to the trait item "descriptor".
646
660
query associated_item( key: DefId ) -> ty:: AssocItem {
647
661
desc { |tcx| "computing associated item data for `{}`" , tcx. def_path_str( key) }
648
662
storage( ArenaCacheSelector <' tcx>)
663
+ cache_on_disk_if { key. is_local( ) }
649
664
separate_provide_extern
650
665
}
651
666
@@ -685,10 +700,12 @@ rustc_queries! {
685
700
/// Return `None` if this is an inherent impl.
686
701
query impl_trait_ref( impl_id: DefId ) -> Option <ty:: TraitRef <' tcx>> {
687
702
desc { |tcx| "computing trait implemented by `{}`" , tcx. def_path_str( impl_id) }
703
+ cache_on_disk_if { impl_id. is_local( ) }
688
704
separate_provide_extern
689
705
}
690
706
query impl_polarity( impl_id: DefId ) -> ty:: ImplPolarity {
691
707
desc { |tcx| "computing implementation polarity of `{}`" , tcx. def_path_str( impl_id) }
708
+ cache_on_disk_if { impl_id. is_local( ) }
692
709
separate_provide_extern
693
710
}
694
711
@@ -701,6 +718,7 @@ rustc_queries! {
701
718
/// Methods in these implementations don't need to be exported.
702
719
query inherent_impls( key: DefId ) -> & ' tcx [ DefId ] {
703
720
desc { |tcx| "collecting inherent impls for `{}`" , tcx. def_path_str( key) }
721
+ cache_on_disk_if { key. is_local( ) }
704
722
separate_provide_extern
705
723
}
706
724
@@ -745,6 +763,7 @@ rustc_queries! {
745
763
/// Computes the signature of the function.
746
764
query fn_sig( key: DefId ) -> ty:: PolyFnSig <' tcx> {
747
765
desc { |tcx| "computing function signature of `{}`" , tcx. def_path_str( key) }
766
+ cache_on_disk_if { key. is_local( ) }
748
767
separate_provide_extern
749
768
}
750
769
@@ -820,6 +839,7 @@ rustc_queries! {
820
839
/// Caches `CoerceUnsized` kinds for impls on custom types.
821
840
query coerce_unsized_info( key: DefId ) -> ty:: adjustment:: CoerceUnsizedInfo {
822
841
desc { |tcx| "computing CoerceUnsized info for `{}`" , tcx. def_path_str( key) }
842
+ cache_on_disk_if { key. is_local( ) }
823
843
separate_provide_extern
824
844
}
825
845
@@ -1033,28 +1053,33 @@ rustc_queries! {
1033
1053
1034
1054
query opt_def_kind( def_id: DefId ) -> Option <DefKind > {
1035
1055
desc { |tcx| "looking up definition kind of `{}`" , tcx. def_path_str( def_id) }
1056
+ cache_on_disk_if { def_id. is_local( ) }
1036
1057
separate_provide_extern
1037
1058
}
1038
1059
1039
1060
/// Gets the span for the definition.
1040
1061
query def_span( def_id: DefId ) -> Span {
1041
1062
desc { |tcx| "looking up span for `{}`" , tcx. def_path_str( def_id) }
1063
+ cache_on_disk_if { def_id. is_local( ) }
1042
1064
separate_provide_extern
1043
1065
}
1044
1066
1045
1067
/// Gets the span for the identifier of the definition.
1046
1068
query def_ident_span( def_id: DefId ) -> Option <Span > {
1047
1069
desc { |tcx| "looking up span for `{}`'s identifier" , tcx. def_path_str( def_id) }
1070
+ cache_on_disk_if { def_id. is_local( ) }
1048
1071
separate_provide_extern
1049
1072
}
1050
1073
1051
1074
query lookup_stability( def_id: DefId ) -> Option <attr:: Stability > {
1052
1075
desc { |tcx| "looking up stability of `{}`" , tcx. def_path_str( def_id) }
1076
+ cache_on_disk_if { def_id. is_local( ) }
1053
1077
separate_provide_extern
1054
1078
}
1055
1079
1056
1080
query lookup_const_stability( def_id: DefId ) -> Option <attr:: ConstStability > {
1057
1081
desc { |tcx| "looking up const stability of `{}`" , tcx. def_path_str( def_id) }
1082
+ cache_on_disk_if { def_id. is_local( ) }
1058
1083
separate_provide_extern
1059
1084
}
1060
1085
@@ -1064,6 +1089,7 @@ rustc_queries! {
1064
1089
1065
1090
query lookup_deprecation_entry( def_id: DefId ) -> Option <DeprecationEntry > {
1066
1091
desc { |tcx| "checking whether `{}` is deprecated" , tcx. def_path_str( def_id) }
1092
+ cache_on_disk_if { def_id. is_local( ) }
1067
1093
separate_provide_extern
1068
1094
}
1069
1095
@@ -1074,6 +1100,7 @@ rustc_queries! {
1074
1100
1075
1101
query item_attrs( def_id: DefId ) -> & ' tcx [ ast:: Attribute ] {
1076
1102
desc { |tcx| "collecting attributes of `{}`" , tcx. def_path_str( def_id) }
1103
+ cache_on_disk_if { def_id. is_local( ) }
1077
1104
separate_provide_extern
1078
1105
}
1079
1106
@@ -1090,33 +1117,39 @@ rustc_queries! {
1090
1117
1091
1118
query fn_arg_names( def_id: DefId ) -> & ' tcx [ rustc_span:: symbol:: Ident ] {
1092
1119
desc { |tcx| "looking up function parameter names for `{}`" , tcx. def_path_str( def_id) }
1120
+ cache_on_disk_if { def_id. is_local( ) }
1093
1121
separate_provide_extern
1094
1122
}
1095
1123
/// Gets the rendered value of the specified constant or associated constant.
1096
1124
/// Used by rustdoc.
1097
1125
query rendered_const( def_id: DefId ) -> String {
1098
1126
storage( ArenaCacheSelector <' tcx>)
1099
1127
desc { |tcx| "rendering constant intializer of `{}`" , tcx. def_path_str( def_id) }
1128
+ cache_on_disk_if { def_id. is_local( ) }
1100
1129
separate_provide_extern
1101
1130
}
1102
1131
query impl_parent( def_id: DefId ) -> Option <DefId > {
1103
1132
desc { |tcx| "computing specialization parent impl of `{}`" , tcx. def_path_str( def_id) }
1133
+ cache_on_disk_if { def_id. is_local( ) }
1104
1134
separate_provide_extern
1105
1135
}
1106
1136
1107
1137
/// Given an `associated_item`, find the trait it belongs to.
1108
1138
/// Return `None` if the `DefId` is not an associated item.
1109
1139
query trait_of_item( associated_item: DefId ) -> Option <DefId > {
1110
1140
desc { |tcx| "finding trait defining `{}`" , tcx. def_path_str( associated_item) }
1141
+ cache_on_disk_if { associated_item. is_local( ) }
1111
1142
separate_provide_extern
1112
1143
}
1113
1144
1114
1145
query is_ctfe_mir_available( key: DefId ) -> bool {
1115
1146
desc { |tcx| "checking if item has ctfe mir available: `{}`" , tcx. def_path_str( key) }
1147
+ cache_on_disk_if { key. is_local( ) }
1116
1148
separate_provide_extern
1117
1149
}
1118
1150
query is_mir_available( key: DefId ) -> bool {
1119
1151
desc { |tcx| "checking if item has mir available: `{}`" , tcx. def_path_str( key) }
1152
+ cache_on_disk_if { key. is_local( ) }
1120
1153
separate_provide_extern
1121
1154
}
1122
1155
@@ -1358,6 +1391,7 @@ rustc_queries! {
1358
1391
1359
1392
query impl_defaultness( def_id: DefId ) -> hir:: Defaultness {
1360
1393
desc { |tcx| "looking up whether `{}` is a default impl" , tcx. def_path_str( def_id) }
1394
+ cache_on_disk_if { def_id. is_local( ) }
1361
1395
separate_provide_extern
1362
1396
}
1363
1397
@@ -1391,6 +1425,7 @@ rustc_queries! {
1391
1425
}
1392
1426
query is_reachable_non_generic( def_id: DefId ) -> bool {
1393
1427
desc { |tcx| "checking whether `{}` is an exported symbol" , tcx. def_path_str( def_id) }
1428
+ cache_on_disk_if { def_id. is_local( ) }
1394
1429
separate_provide_extern
1395
1430
}
1396
1431
query is_unreachable_local_definition( def_id: LocalDefId ) -> bool {
@@ -1705,9 +1740,9 @@ rustc_queries! {
1705
1740
/// - All names contained in `exported_symbols(cnum)` are guaranteed to
1706
1741
/// correspond to a publicly visible symbol in `cnum` machine code.
1707
1742
/// - The `exported_symbols` sets of different crates do not intersect.
1708
- query exported_symbols( _: CrateNum )
1709
- -> & ' tcx [ ( ExportedSymbol <' tcx>, SymbolExportInfo ) ] {
1743
+ query exported_symbols( cnum: CrateNum ) -> & ' tcx [ ( ExportedSymbol <' tcx>, SymbolExportInfo ) ] {
1710
1744
desc { "exported_symbols" }
1745
+ cache_on_disk_if { * cnum == LOCAL_CRATE }
1711
1746
separate_provide_extern
1712
1747
}
1713
1748
0 commit comments