@@ -26,7 +26,7 @@ use middle::region;
26
26
use middle:: resolve_lifetime:: { ResolveLifetimes , Region , ObjectLifetimeDefault } ;
27
27
use middle:: stability:: { self , DeprecationEntry } ;
28
28
use middle:: lang_items:: { LanguageItems , LangItem } ;
29
- use middle:: exported_symbols:: SymbolExportLevel ;
29
+ use middle:: exported_symbols:: { SymbolExportLevel , ExportedSymbol } ;
30
30
use mir:: mono:: { CodegenUnit , Stats } ;
31
31
use mir;
32
32
use session:: { CompileResult , CrateDisambiguator } ;
@@ -237,7 +237,6 @@ define_maps! { <'tcx>
237
237
[ ] fn fn_arg_names: FnArgNames ( DefId ) -> Vec <ast:: Name >,
238
238
[ ] fn impl_parent: ImplParent ( DefId ) -> Option <DefId >,
239
239
[ ] fn trait_of_item: TraitOfItem ( DefId ) -> Option <DefId >,
240
- [ ] fn is_exported_symbol: IsExportedSymbol ( DefId ) -> bool ,
241
240
[ ] fn item_body_nested_bodies: ItemBodyNestedBodies ( DefId ) -> ExternBodyNestedBodies ,
242
241
[ ] fn const_is_rvalue_promotable_to_static: ConstIsRvaluePromotableToStatic ( DefId ) -> bool ,
243
242
[ ] fn rvalue_promotable_map: RvaluePromotableMap ( DefId ) -> Rc <ItemLocalSet >,
@@ -289,7 +288,23 @@ define_maps! { <'tcx>
289
288
[ ] fn lint_levels: lint_levels_node( CrateNum ) -> Rc <lint:: LintLevelMap >,
290
289
291
290
[ ] fn impl_defaultness: ImplDefaultness ( DefId ) -> hir:: Defaultness ,
292
- [ ] fn exported_symbol_ids: ExportedSymbolIds ( CrateNum ) -> Rc <DefIdSet >,
291
+
292
+ // The DefIds of all non-generic functions and statics in the given crate
293
+ // that can be reached from outside the crate.
294
+ //
295
+ // We expect this items to be available for being linked to.
296
+ //
297
+ // This query can also be called for LOCAL_CRATE. In this case it will
298
+ // compute which items will be reachable to other crates, taking into account
299
+ // the kind of crate that is currently compiled. Crates with only a
300
+ // C interface have fewer reachable things.
301
+ //
302
+ // Does not include external symbols that don't have a corresponding DefId,
303
+ // like the compiler-generated `main` function and so on.
304
+ [ ] fn reachable_non_generics: ReachableNonGenerics ( CrateNum ) -> Rc <DefIdSet >,
305
+ [ ] fn is_reachable_non_generic: IsReachableNonGeneric ( DefId ) -> bool ,
306
+
307
+
293
308
[ ] fn native_libraries: NativeLibraries ( CrateNum ) -> Rc <Vec <NativeLibrary >>,
294
309
[ ] fn plugin_registrar_fn: PluginRegistrarFn ( CrateNum ) -> Option <DefId >,
295
310
[ ] fn derive_registrar_fn: DeriveRegistrarFn ( CrateNum ) -> Option <DefId >,
@@ -342,7 +357,7 @@ define_maps! { <'tcx>
342
357
[ ] fn all_crate_nums: all_crate_nums_node( CrateNum ) -> Rc <Vec <CrateNum >>,
343
358
344
359
[ ] fn exported_symbols: ExportedSymbols ( CrateNum )
345
- -> Arc <Vec <( String , Option < DefId > , SymbolExportLevel ) >>,
360
+ -> Arc <Vec <( ExportedSymbol , SymbolExportLevel ) >>,
346
361
[ ] fn collect_and_partition_translation_items:
347
362
collect_and_partition_translation_items_node( CrateNum )
348
363
-> ( Arc <DefIdSet >, Arc <Vec <Arc <CodegenUnit <' tcx>>>>) ,
0 commit comments