@@ -593,7 +593,7 @@ macro_rules! profq_key {
593593macro_rules!  define_maps { 
594594    ( <$tcx: tt>
595595     $( $( #[ $attr: meta] ) * 
596-        [ $( $modifiers: tt) * ]  $name: ident:  $node: ident( $K: ty)  -> $V: ty, ) * )  => { 
596+        [ $( $modifiers: tt) * ]  fn   $name: ident:  $node: ident( $K: ty)  -> $V: ty, ) * )  => { 
597597        define_map_struct! { 
598598            tcx:  $tcx, 
599599            input:  ( $( ( [ $( $modifiers) * ]  [ $( $attr) * ]  [ $name] ) ) * ) 
@@ -954,191 +954,192 @@ macro_rules! define_provider_struct {
954954// the driver creates (using several `rustc_*` crates). 
955955define_maps !  {  <' tcx>
956956    /// Records the type of every item. 
957-      [ ]  type_of:  TypeOfItem ( DefId )  -> Ty <' tcx>, 
957+      [ ]  fn   type_of:  TypeOfItem ( DefId )  -> Ty <' tcx>, 
958958
959959    /// Maps from the def-id of an item (trait/struct/enum/fn) to its 
960960     /// associated generics and predicates. 
961-      [ ]  generics_of:  GenericsOfItem ( DefId )  -> & ' tcx ty:: Generics , 
962-     [ ]  predicates_of:  PredicatesOfItem ( DefId )  -> ty:: GenericPredicates <' tcx>, 
961+      [ ]  fn   generics_of:  GenericsOfItem ( DefId )  -> & ' tcx ty:: Generics , 
962+     [ ]  fn   predicates_of:  PredicatesOfItem ( DefId )  -> ty:: GenericPredicates <' tcx>, 
963963
964964    /// Maps from the def-id of a trait to the list of 
965965     /// super-predicates. This is a subset of the full list of 
966966     /// predicates. We store these in a separate map because we must 
967967     /// evaluate them even during type conversion, often before the 
968968     /// full predicates are available (note that supertraits have 
969969     /// additional acyclicity requirements). 
970-      [ ]  super_predicates_of:  SuperPredicatesOfItem ( DefId )  -> ty:: GenericPredicates <' tcx>, 
970+      [ ]  fn   super_predicates_of:  SuperPredicatesOfItem ( DefId )  -> ty:: GenericPredicates <' tcx>, 
971971
972972    /// To avoid cycles within the predicates of a single item we compute 
973973     /// per-type-parameter predicates for resolving `T::AssocTy`. 
974-      [ ]  type_param_predicates:  type_param_predicates( ( DefId ,  DefId ) ) 
974+      [ ]  fn   type_param_predicates:  type_param_predicates( ( DefId ,  DefId ) ) 
975975        -> ty:: GenericPredicates <' tcx>, 
976976
977-     [ ]  trait_def:  TraitDefOfItem ( DefId )  -> & ' tcx ty:: TraitDef , 
978-     [ ]  adt_def:  AdtDefOfItem ( DefId )  -> & ' tcx ty:: AdtDef , 
979-     [ ]  adt_destructor:  AdtDestructor ( DefId )  -> Option <ty:: Destructor >, 
980-     [ ]  adt_sized_constraint:  SizedConstraint ( DefId )  -> & ' tcx [ Ty <' tcx>] , 
981-     [ ]  adt_dtorck_constraint:  DtorckConstraint ( DefId )  -> ty:: DtorckConstraint <' tcx>, 
977+     [ ]  fn   trait_def:  TraitDefOfItem ( DefId )  -> & ' tcx ty:: TraitDef , 
978+     [ ]  fn   adt_def:  AdtDefOfItem ( DefId )  -> & ' tcx ty:: AdtDef , 
979+     [ ]  fn   adt_destructor:  AdtDestructor ( DefId )  -> Option <ty:: Destructor >, 
980+     [ ]  fn   adt_sized_constraint:  SizedConstraint ( DefId )  -> & ' tcx [ Ty <' tcx>] , 
981+     [ ]  fn   adt_dtorck_constraint:  DtorckConstraint ( DefId )  -> ty:: DtorckConstraint <' tcx>, 
982982
983983    /// True if this is a const fn 
984-      [ ]  is_const_fn:  IsConstFn ( DefId )  -> bool , 
984+      [ ]  fn   is_const_fn:  IsConstFn ( DefId )  -> bool , 
985985
986986    /// True if this is a foreign item (i.e., linked via `extern { ... }`). 
987-      [ ]  is_foreign_item:  IsForeignItem ( DefId )  -> bool , 
987+      [ ]  fn   is_foreign_item:  IsForeignItem ( DefId )  -> bool , 
988988
989989    /// True if this is a default impl (aka impl Foo for ..) 
990-      [ ]  is_default_impl:  IsDefaultImpl ( DefId )  -> bool , 
990+      [ ]  fn   is_default_impl:  IsDefaultImpl ( DefId )  -> bool , 
991991
992992    /// Get a map with the variance of every item; use `item_variance` 
993993     /// instead. 
994-      [ ]  crate_variances:  crate_variances( CrateNum )  -> Rc <ty:: CrateVariancesMap >, 
994+      [ ]  fn   crate_variances:  crate_variances( CrateNum )  -> Rc <ty:: CrateVariancesMap >, 
995995
996996    /// Maps from def-id of a type or region parameter to its 
997997     /// (inferred) variance. 
998-      [ ]  variances_of:  ItemVariances ( DefId )  -> Rc <Vec <ty:: Variance >>, 
998+      [ ]  fn   variances_of:  ItemVariances ( DefId )  -> Rc <Vec <ty:: Variance >>, 
999999
10001000    /// Maps from an impl/trait def-id to a list of the def-ids of its items 
1001-      [ ]  associated_item_def_ids:  AssociatedItemDefIds ( DefId )  -> Rc <Vec <DefId >>, 
1001+      [ ]  fn   associated_item_def_ids:  AssociatedItemDefIds ( DefId )  -> Rc <Vec <DefId >>, 
10021002
10031003    /// Maps from a trait item to the trait item "descriptor" 
1004-      [ ]  associated_item:  AssociatedItems ( DefId )  -> ty:: AssociatedItem , 
1004+      [ ]  fn   associated_item:  AssociatedItems ( DefId )  -> ty:: AssociatedItem , 
10051005
1006-     [ ]  impl_trait_ref:  ImplTraitRef ( DefId )  -> Option <ty:: TraitRef <' tcx>>, 
1007-     [ ]  impl_polarity:  ImplPolarity ( DefId )  -> hir:: ImplPolarity , 
1006+     [ ]  fn   impl_trait_ref:  ImplTraitRef ( DefId )  -> Option <ty:: TraitRef <' tcx>>, 
1007+     [ ]  fn   impl_polarity:  ImplPolarity ( DefId )  -> hir:: ImplPolarity , 
10081008
10091009    /// Maps a DefId of a type to a list of its inherent impls. 
10101010     /// Contains implementations of methods that are inherent to a type. 
10111011     /// Methods in these implementations don't need to be exported. 
1012-      [ ]  inherent_impls:  InherentImpls ( DefId )  -> Rc <Vec <DefId >>, 
1012+      [ ]  fn   inherent_impls:  InherentImpls ( DefId )  -> Rc <Vec <DefId >>, 
10131013
10141014    /// Set of all the def-ids in this crate that have MIR associated with 
10151015     /// them. This includes all the body owners, but also things like struct 
10161016     /// constructors. 
1017-      [ ]  mir_keys:  mir_keys( CrateNum )  -> Rc <DefIdSet >, 
1017+      [ ]  fn   mir_keys:  mir_keys( CrateNum )  -> Rc <DefIdSet >, 
10181018
10191019    /// Maps DefId's that have an associated Mir to the result 
10201020     /// of the MIR qualify_consts pass. The actual meaning of 
10211021     /// the value isn't known except to the pass itself. 
1022-      [ ]  mir_const_qualif:  MirConstQualif ( DefId )  -> u8 , 
1022+      [ ]  fn   mir_const_qualif:  MirConstQualif ( DefId )  -> u8 , 
10231023
10241024    /// Fetch the MIR for a given def-id up till the point where it is 
10251025     /// ready for const evaluation. 
10261026     /// 
10271027     /// See the README for the `mir` module for details. 
1028-      [ ]  mir_const:  MirConst ( DefId )  -> & ' tcx Steal <mir:: Mir <' tcx>>, 
1028+      [ ]  fn   mir_const:  MirConst ( DefId )  -> & ' tcx Steal <mir:: Mir <' tcx>>, 
10291029
1030-     [ ]  mir_validated:  MirValidated ( DefId )  -> & ' tcx Steal <mir:: Mir <' tcx>>, 
1030+     [ ]  fn   mir_validated:  MirValidated ( DefId )  -> & ' tcx Steal <mir:: Mir <' tcx>>, 
10311031
10321032    /// MIR after our optimization passes have run. This is MIR that is ready 
10331033     /// for trans. This is also the only query that can fetch non-local MIR, at present. 
1034-      [ ]  optimized_mir:  MirOptimized ( DefId )  -> & ' tcx mir:: Mir <' tcx>, 
1034+      [ ]  fn   optimized_mir:  MirOptimized ( DefId )  -> & ' tcx mir:: Mir <' tcx>, 
10351035
10361036    /// Type of each closure. The def ID is the ID of the 
10371037     /// expression defining the closure. 
1038-      [ ]  closure_kind:  ClosureKind ( DefId )  -> ty:: ClosureKind , 
1038+      [ ]  fn   closure_kind:  ClosureKind ( DefId )  -> ty:: ClosureKind , 
10391039
10401040    /// The signature of functions and closures. 
1041-      [ ]  fn_sig:  FnSignature ( DefId )  -> ty:: PolyFnSig <' tcx>, 
1041+      [ ]  fn   fn_sig:  FnSignature ( DefId )  -> ty:: PolyFnSig <' tcx>, 
10421042
10431043    /// Records the signature of each generator. The def ID is the ID of the 
10441044     /// expression defining the closure. 
1045-      [ ]  generator_sig:  GenSignature ( DefId )  -> Option <ty:: PolyGenSig <' tcx>>, 
1045+      [ ]  fn   generator_sig:  GenSignature ( DefId )  -> Option <ty:: PolyGenSig <' tcx>>, 
10461046
10471047    /// Caches CoerceUnsized kinds for impls on custom types. 
1048-      [ ]  coerce_unsized_info:  CoerceUnsizedInfo ( DefId ) 
1048+      [ ]  fn   coerce_unsized_info:  CoerceUnsizedInfo ( DefId ) 
10491049        -> ty:: adjustment:: CoerceUnsizedInfo , 
10501050
1051-     [ ]  typeck_item_bodies:  typeck_item_bodies_dep_node( CrateNum )  -> CompileResult , 
1051+     [ ]  fn   typeck_item_bodies:  typeck_item_bodies_dep_node( CrateNum )  -> CompileResult , 
10521052
1053-     [ ]  typeck_tables_of:  TypeckTables ( DefId )  -> & ' tcx ty:: TypeckTables <' tcx>, 
1053+     [ ]  fn   typeck_tables_of:  TypeckTables ( DefId )  -> & ' tcx ty:: TypeckTables <' tcx>, 
10541054
1055-     [ ]  has_typeck_tables:  HasTypeckTables ( DefId )  -> bool , 
1055+     [ ]  fn   has_typeck_tables:  HasTypeckTables ( DefId )  -> bool , 
10561056
1057-     [ ]  coherent_trait:  coherent_trait_dep_node( ( CrateNum ,  DefId ) )  -> ( ) , 
1057+     [ ]  fn   coherent_trait:  coherent_trait_dep_node( ( CrateNum ,  DefId ) )  -> ( ) , 
10581058
1059-     [ ]  borrowck:  BorrowCheck ( DefId )  -> ( ) , 
1059+     [ ]  fn   borrowck:  BorrowCheck ( DefId )  -> ( ) , 
10601060    // FIXME: shouldn't this return a `Result<(), BorrowckErrors>` instead? 
1061-     [ ]  mir_borrowck:  MirBorrowCheck ( DefId )  -> ( ) , 
1061+     [ ]  fn   mir_borrowck:  MirBorrowCheck ( DefId )  -> ( ) , 
10621062
10631063    /// Gets a complete map from all types to their inherent impls. 
10641064     /// Not meant to be used directly outside of coherence. 
10651065     /// (Defined only for LOCAL_CRATE) 
1066-      [ ]  crate_inherent_impls:  crate_inherent_impls_dep_node( CrateNum )  -> CrateInherentImpls , 
1066+      [ ]  fn   crate_inherent_impls:  crate_inherent_impls_dep_node( CrateNum )  -> CrateInherentImpls , 
10671067
10681068    /// Checks all types in the krate for overlap in their inherent impls. Reports errors. 
10691069     /// Not meant to be used directly outside of coherence. 
10701070     /// (Defined only for LOCAL_CRATE) 
1071-      [ ]  crate_inherent_impls_overlap_check:  inherent_impls_overlap_check_dep_node( CrateNum )  -> ( ) , 
1071+      [ ]  fn   crate_inherent_impls_overlap_check:  inherent_impls_overlap_check_dep_node( CrateNum )  -> ( ) , 
10721072
10731073    /// Results of evaluating const items or constants embedded in 
10741074     /// other items (such as enum variant explicit discriminants). 
1075-      [ ]  const_eval:  const_eval_dep_node( ty:: ParamEnvAnd <' tcx,  ( DefId ,  & ' tcx Substs <' tcx>) >) 
1075+      [ ]  fn   const_eval:  const_eval_dep_node( ty:: ParamEnvAnd <' tcx,  ( DefId ,  & ' tcx Substs <' tcx>) >) 
10761076        -> const_val:: EvalResult <' tcx>, 
10771077
10781078    /// Performs the privacy check and computes "access levels". 
1079-      [ ]  privacy_access_levels:  PrivacyAccessLevels ( CrateNum )  -> Rc <AccessLevels >, 
1079+      [ ]  fn   privacy_access_levels:  PrivacyAccessLevels ( CrateNum )  -> Rc <AccessLevels >, 
10801080
1081-     [ ]  reachable_set:  reachability_dep_node( CrateNum )  -> Rc <NodeSet >, 
1081+     [ ]  fn   reachable_set:  reachability_dep_node( CrateNum )  -> Rc <NodeSet >, 
10821082
10831083    /// Per-function `RegionMaps`. The `DefId` should be the owner-def-id for the fn body; 
10841084     /// in the case of closures or "inline" expressions, this will be redirected to the enclosing 
10851085     /// fn item. 
1086-      [ ]  region_maps:  RegionMaps ( DefId )  -> Rc <RegionMaps >, 
1087- 
1088-     [ ]  mir_shims:  mir_shim_dep_node( ty:: InstanceDef <' tcx>)  -> & ' tcx mir:: Mir <' tcx>, 
1089- 
1090-     [ ]  def_symbol_name:  SymbolName ( DefId )  -> ty:: SymbolName , 
1091-     [ ]  symbol_name:  symbol_name_dep_node( ty:: Instance <' tcx>)  -> ty:: SymbolName , 
1092- 
1093-     [ ]  describe_def:  DescribeDef ( DefId )  -> Option <Def >, 
1094-     [ ]  def_span:  DefSpan ( DefId )  -> Span , 
1095-     [ ]  stability:  Stability ( DefId )  -> Option <attr:: Stability >, 
1096-     [ ]  deprecation:  Deprecation ( DefId )  -> Option <attr:: Deprecation >, 
1097-     [ ]  item_attrs:  ItemAttrs ( DefId )  -> Rc <[ ast:: Attribute ] >, 
1098-     [ ]  fn_arg_names:  FnArgNames ( DefId )  -> Vec <ast:: Name >, 
1099-     [ ]  impl_parent:  ImplParent ( DefId )  -> Option <DefId >, 
1100-     [ ]  trait_of_item:  TraitOfItem ( DefId )  -> Option <DefId >, 
1101-     [ ]  is_exported_symbol:  IsExportedSymbol ( DefId )  -> bool , 
1102-     [ ]  item_body_nested_bodies:  ItemBodyNestedBodies ( DefId )  -> Rc <BTreeMap <hir:: BodyId ,  hir:: Body >>, 
1103-     [ ]  const_is_rvalue_promotable_to_static:  ConstIsRvaluePromotableToStatic ( DefId )  -> bool , 
1104-     [ ]  is_mir_available:  IsMirAvailable ( DefId )  -> bool , 
1105- 
1106-     [ ]  trait_impls_of:  TraitImpls ( DefId )  -> Rc <ty:: trait_def:: TraitImpls >, 
1107-     [ ]  specialization_graph_of:  SpecializationGraph ( DefId )  -> Rc <specialization_graph:: Graph >, 
1108-     [ ]  is_object_safe:  ObjectSafety ( DefId )  -> bool , 
1086+      [ ]  fn  region_maps:  RegionMaps ( DefId )  -> Rc <RegionMaps >, 
1087+ 
1088+     [ ]  fn  mir_shims:  mir_shim_dep_node( ty:: InstanceDef <' tcx>)  -> & ' tcx mir:: Mir <' tcx>, 
1089+ 
1090+     [ ]  fn  def_symbol_name:  SymbolName ( DefId )  -> ty:: SymbolName , 
1091+     [ ]  fn  symbol_name:  symbol_name_dep_node( ty:: Instance <' tcx>)  -> ty:: SymbolName , 
1092+ 
1093+     [ ]  fn  describe_def:  DescribeDef ( DefId )  -> Option <Def >, 
1094+     [ ]  fn  def_span:  DefSpan ( DefId )  -> Span , 
1095+     [ ]  fn  stability:  Stability ( DefId )  -> Option <attr:: Stability >, 
1096+     [ ]  fn  deprecation:  Deprecation ( DefId )  -> Option <attr:: Deprecation >, 
1097+     [ ]  fn  item_attrs:  ItemAttrs ( DefId )  -> Rc <[ ast:: Attribute ] >, 
1098+     [ ]  fn  fn_arg_names:  FnArgNames ( DefId )  -> Vec <ast:: Name >, 
1099+     [ ]  fn  impl_parent:  ImplParent ( DefId )  -> Option <DefId >, 
1100+     [ ]  fn  trait_of_item:  TraitOfItem ( DefId )  -> Option <DefId >, 
1101+     [ ]  fn  is_exported_symbol:  IsExportedSymbol ( DefId )  -> bool , 
1102+     [ ]  fn  item_body_nested_bodies:  ItemBodyNestedBodies ( DefId ) 
1103+         -> Rc <BTreeMap <hir:: BodyId ,  hir:: Body >>, 
1104+     [ ]  fn  const_is_rvalue_promotable_to_static:  ConstIsRvaluePromotableToStatic ( DefId )  -> bool , 
1105+     [ ]  fn  is_mir_available:  IsMirAvailable ( DefId )  -> bool , 
1106+ 
1107+     [ ]  fn  trait_impls_of:  TraitImpls ( DefId )  -> Rc <ty:: trait_def:: TraitImpls >, 
1108+     [ ]  fn  specialization_graph_of:  SpecializationGraph ( DefId )  -> Rc <specialization_graph:: Graph >, 
1109+     [ ]  fn  is_object_safe:  ObjectSafety ( DefId )  -> bool , 
11091110
11101111    // Get the ParameterEnvironment for a given item; this environment 
11111112    // will be in "user-facing" mode, meaning that it is suitabe for 
11121113    // type-checking etc, and it does not normalize specializable 
11131114    // associated types. This is almost always what you want, 
11141115    // unless you are doing MIR optimizations, in which case you 
11151116    // might want to use `reveal_all()` method to change modes. 
1116-     [ ]  param_env:  ParamEnv ( DefId )  -> ty:: ParamEnv <' tcx>, 
1117+     [ ]  fn   param_env:  ParamEnv ( DefId )  -> ty:: ParamEnv <' tcx>, 
11171118
11181119    // Trait selection queries. These are best used by invoking `ty.moves_by_default()`, 
11191120    // `ty.is_copy()`, etc, since that will prune the environment where possible. 
1120-     [ ]  is_copy_raw:  is_copy_dep_node( ty:: ParamEnvAnd <' tcx,  Ty <' tcx>>)  -> bool , 
1121-     [ ]  is_sized_raw:  is_sized_dep_node( ty:: ParamEnvAnd <' tcx,  Ty <' tcx>>)  -> bool , 
1122-     [ ]  is_freeze_raw:  is_freeze_dep_node( ty:: ParamEnvAnd <' tcx,  Ty <' tcx>>)  -> bool , 
1123-     [ ]  needs_drop_raw:  needs_drop_dep_node( ty:: ParamEnvAnd <' tcx,  Ty <' tcx>>)  -> bool , 
1124-     [ ]  layout_raw:  layout_dep_node( ty:: ParamEnvAnd <' tcx,  Ty <' tcx>>) 
1121+     [ ]  fn   is_copy_raw:  is_copy_dep_node( ty:: ParamEnvAnd <' tcx,  Ty <' tcx>>)  -> bool , 
1122+     [ ]  fn   is_sized_raw:  is_sized_dep_node( ty:: ParamEnvAnd <' tcx,  Ty <' tcx>>)  -> bool , 
1123+     [ ]  fn   is_freeze_raw:  is_freeze_dep_node( ty:: ParamEnvAnd <' tcx,  Ty <' tcx>>)  -> bool , 
1124+     [ ]  fn   needs_drop_raw:  needs_drop_dep_node( ty:: ParamEnvAnd <' tcx,  Ty <' tcx>>)  -> bool , 
1125+     [ ]  fn   layout_raw:  layout_dep_node( ty:: ParamEnvAnd <' tcx,  Ty <' tcx>>) 
11251126                                  -> Result <& ' tcx Layout ,  LayoutError <' tcx>>, 
11261127
1127-     [ ]  dylib_dependency_formats:  DylibDepFormats ( DefId ) 
1128+     [ ]  fn   dylib_dependency_formats:  DylibDepFormats ( DefId ) 
11281129                                    -> Rc <Vec <( CrateNum ,  LinkagePreference ) >>, 
11291130
1130-     [ ]  is_allocator:  IsAllocator ( DefId )  -> bool , 
1131-     [ ]  is_panic_runtime:  IsPanicRuntime ( DefId )  -> bool , 
1132-     [ ]  is_compiler_builtins:  IsCompilerBuiltins ( DefId )  -> bool , 
1133-     [ ]  has_global_allocator:  HasGlobalAllocator ( DefId )  -> bool , 
1131+     [ ]  fn   is_allocator:  IsAllocator ( DefId )  -> bool , 
1132+     [ ]  fn   is_panic_runtime:  IsPanicRuntime ( DefId )  -> bool , 
1133+     [ ]  fn   is_compiler_builtins:  IsCompilerBuiltins ( DefId )  -> bool , 
1134+     [ ]  fn   has_global_allocator:  HasGlobalAllocator ( DefId )  -> bool , 
11341135
1135-     [ ]  extern_crate:  ExternCrate ( DefId )  -> Rc <Option <ExternCrate >>, 
1136+     [ ]  fn   extern_crate:  ExternCrate ( DefId )  -> Rc <Option <ExternCrate >>, 
11361137
1137-     [ ]  lint_levels:  lint_levels( CrateNum )  -> Rc <lint:: LintLevelMap >, 
1138+     [ ]  fn   lint_levels:  lint_levels( CrateNum )  -> Rc <lint:: LintLevelMap >, 
11381139
1139-     [ ]  specializes:  specializes_node( ( DefId ,  DefId ) )  -> bool , 
1140-     [ ]  in_scope_traits:  InScopeTraits ( HirId )  -> Option <Rc <Vec <TraitCandidate >>>, 
1141-     [ ]  module_exports:  ModuleExports ( HirId )  -> Option <Rc <Vec <Export >>>, 
1140+     [ ]  fn   specializes:  specializes_node( ( DefId ,  DefId ) )  -> bool , 
1141+     [ ]  fn   in_scope_traits:  InScopeTraits ( HirId )  -> Option <Rc <Vec <TraitCandidate >>>, 
1142+     [ ]  fn   module_exports:  ModuleExports ( HirId )  -> Option <Rc <Vec <Export >>>, 
11421143} 
11431144
11441145fn  type_param_predicates < ' tcx > ( ( item_id,  param_id) :  ( DefId ,  DefId ) )  -> DepConstructor < ' tcx >  { 
0 commit comments