Struct rustc_metadata::cstore::CStore
[−]
[src]
pub struct CStore { pub dep_graph: DepGraph, pub dllimport_foreign_items: RefCell<FxHashSet<DefIndex>>, pub visible_parent_map: RefCell<DefIdMap<DefId>>, // some fields omitted }
🔬 This is a nightly-only experimental API. (
rustc_private
)Fields
dep_graph: DepGraph
🔬 This is a nightly-only experimental API. (
rustc_private
)dllimport_foreign_items: RefCell<FxHashSet<DefIndex>>
🔬 This is a nightly-only experimental API. (
rustc_private
)visible_parent_map: RefCell<DefIdMap<DefId>>
🔬 This is a nightly-only experimental API. (
rustc_private
)Methods
impl CStore
[src]
fn new(dep_graph: &DepGraph) -> CStore
🔬 This is a nightly-only experimental API. (
rustc_private
)fn next_crate_num(&self) -> CrateNum
🔬 This is a nightly-only experimental API. (
rustc_private
)fn get_crate_data(&self, cnum: CrateNum) -> Rc<CrateMetadata>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn get_crate_hash(&self, cnum: CrateNum) -> Svh
🔬 This is a nightly-only experimental API. (
rustc_private
)fn set_crate_data(&self, cnum: CrateNum, data: Rc<CrateMetadata>)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn iter_crate_data<I>(&self, i: I) where I: FnMut(CrateNum, &Rc<CrateMetadata>)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn reset(&self)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn crate_dependencies_in_rpo(&self, krate: CrateNum) -> Vec<CrateNum>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn push_dependencies_in_postorder(&self,
ordering: &mut Vec<CrateNum>,
krate: CrateNum)
ordering: &mut Vec<CrateNum>,
krate: CrateNum)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn do_get_used_crates(&self,
prefer: LinkagePreference)
-> Vec<(CrateNum, LibSource)>
prefer: LinkagePreference)
-> Vec<(CrateNum, LibSource)>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn add_used_library(&self, lib: NativeLibrary)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn get_used_libraries(&self) -> &RefCell<Vec<NativeLibrary>>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn add_used_link_args(&self, args: &str)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn get_used_link_args<'a>(&'a self) -> &'a RefCell<Vec<String>>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn add_extern_mod_stmt_cnum(&self, emod_id: NodeId, cnum: CrateNum)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn add_statically_included_foreign_item(&self, id: DefIndex)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn do_is_statically_included_foreign_item(&self, def_id: DefId) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn do_extern_mod_stmt_cnum(&self, emod_id: NodeId) -> Option<CrateNum>
🔬 This is a nightly-only experimental API. (
rustc_private
)Trait Implementations
impl CrateStore for CStore
[src]
fn crate_data_as_rc_any(&self, krate: CrateNum) -> Rc<Any>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn describe_def(&self, def: DefId) -> Option<Def>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn def_span(&self, sess: &Session, def: DefId) -> Span
🔬 This is a nightly-only experimental API. (
rustc_private
)fn stability(&self, def: DefId) -> Option<Stability>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn deprecation(&self, def: DefId) -> Option<Deprecation>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visibility(&self, def: DefId) -> Visibility
🔬 This is a nightly-only experimental API. (
rustc_private
)fn item_generics_cloned(&self, def: DefId) -> Generics
🔬 This is a nightly-only experimental API. (
rustc_private
)fn item_attrs(&self, def_id: DefId) -> Vec<Attribute>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn fn_arg_names(&self, did: DefId) -> Vec<Name>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn inherent_implementations_for_type(&self, def_id: DefId) -> Vec<DefId>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn implementations_of_trait(&self, filter: Option<DefId>) -> Vec<DefId>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn impl_polarity(&self, def: DefId) -> ImplPolarity
🔬 This is a nightly-only experimental API. (
rustc_private
)fn impl_parent(&self, impl_def: DefId) -> Option<DefId>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn trait_of_item(&self, def_id: DefId) -> Option<DefId>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn associated_item_cloned(&self, def: DefId) -> AssociatedItem
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_const_fn(&self, did: DefId) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_default_impl(&self, impl_did: DefId) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_foreign_item(&self, did: DefId) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_statically_included_foreign_item(&self, def_id: DefId) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_exported_symbol(&self, def_id: DefId) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_dllimport_foreign_item(&self, def_id: DefId) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn dylib_dependency_formats(&self,
cnum: CrateNum)
-> Vec<(CrateNum, LinkagePreference)>
cnum: CrateNum)
-> Vec<(CrateNum, LinkagePreference)>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn dep_kind(&self, cnum: CrateNum) -> DepKind
🔬 This is a nightly-only experimental API. (
rustc_private
)fn export_macros(&self, cnum: CrateNum)
🔬 This is a nightly-only experimental API. (
rustc_private
)fn lang_items(&self, cnum: CrateNum) -> Vec<(DefIndex, usize)>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn missing_lang_items(&self, cnum: CrateNum) -> Vec<LangItem>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_staged_api(&self, cnum: CrateNum) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_allocator(&self, cnum: CrateNum) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_panic_runtime(&self, cnum: CrateNum) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_compiler_builtins(&self, cnum: CrateNum) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_sanitizer_runtime(&self, cnum: CrateNum) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn panic_strategy(&self, cnum: CrateNum) -> PanicStrategy
🔬 This is a nightly-only experimental API. (
rustc_private
)fn crate_name(&self, cnum: CrateNum) -> Symbol
🔬 This is a nightly-only experimental API. (
rustc_private
)The name of the crate as it is referred to in source code of the current crate. Read more
fn original_crate_name(&self, cnum: CrateNum) -> Symbol
🔬 This is a nightly-only experimental API. (
rustc_private
)The name of the crate as it is stored in the crate's metadata.
fn extern_crate(&self, cnum: CrateNum) -> Option<ExternCrate>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn crate_hash(&self, cnum: CrateNum) -> Svh
🔬 This is a nightly-only experimental API. (
rustc_private
)fn crate_disambiguator(&self, cnum: CrateNum) -> Symbol
🔬 This is a nightly-only experimental API. (
rustc_private
)fn plugin_registrar_fn(&self, cnum: CrateNum) -> Option<DefId>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn derive_registrar_fn(&self, cnum: CrateNum) -> Option<DefId>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn native_libraries(&self, cnum: CrateNum) -> Vec<NativeLibrary>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn exported_symbols(&self, cnum: CrateNum) -> Vec<DefId>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_no_builtins(&self, cnum: CrateNum) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn retrace_path(&self,
cnum: CrateNum,
path: &[DisambiguatedDefPathData])
-> Option<DefId>
cnum: CrateNum,
path: &[DisambiguatedDefPathData])
-> Option<DefId>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn def_key(&self, def: DefId) -> DefKey
🔬 This is a nightly-only experimental API. (
rustc_private
)Returns the DefKey
for a given DefId
. This indicates the
parent DefId
as well as some idea of what kind of data the
DefId
refers to.
fn def_path(&self, def: DefId) -> DefPath
🔬 This is a nightly-only experimental API. (
rustc_private
)fn struct_field_names(&self, def: DefId) -> Vec<Name>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn item_children(&self, def_id: DefId) -> Vec<Export>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn load_macro(&self, id: DefId, sess: &Session) -> LoadedMacro
🔬 This is a nightly-only experimental API. (
rustc_private
)fn maybe_get_item_body<'a, 'tcx>(&self,
tcx: TyCtxt<'a, 'tcx, 'tcx>,
def_id: DefId)
-> Option<&'tcx Body>
tcx: TyCtxt<'a, 'tcx, 'tcx>,
def_id: DefId)
-> Option<&'tcx Body>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn item_body_nested_bodies(&self, def: DefId) -> BTreeMap<BodyId, Body>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn const_is_rvalue_promotable_to_static(&self, def: DefId) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_item_mir_available(&self, def: DefId) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn crates(&self) -> Vec<CrateNum>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn used_libraries(&self) -> Vec<NativeLibrary>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn used_link_args(&self) -> Vec<String>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn metadata_filename(&self) -> &str
🔬 This is a nightly-only experimental API. (
rustc_private
)fn metadata_section_name(&self, target: &Target) -> &str
🔬 This is a nightly-only experimental API. (
rustc_private
)fn used_crates(&self, prefer: LinkagePreference) -> Vec<(CrateNum, LibSource)>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn used_crate_source(&self, cnum: CrateNum) -> CrateSource
🔬 This is a nightly-only experimental API. (
rustc_private
)fn extern_mod_stmt_cnum(&self, emod_id: NodeId) -> Option<CrateNum>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn encode_metadata<'a, 'tcx>(&self,
tcx: TyCtxt<'a, 'tcx, 'tcx>,
reexports: &ExportMap,
link_meta: &LinkMeta,
reachable: &NodeSet)
-> Vec<u8>
tcx: TyCtxt<'a, 'tcx, 'tcx>,
reexports: &ExportMap,
link_meta: &LinkMeta,
reachable: &NodeSet)
-> Vec<u8>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn metadata_encoding_version(&self) -> &[u8]
🔬 This is a nightly-only experimental API. (
rustc_private
)fn visible_parent_map<'a>(&'a self) -> RefMut<'a, DefIdMap<DefId>>
🔬 This is a nightly-only experimental API. (
rustc_private
)Returns a map from a sufficiently visible external item (i.e. an external item that is visible from at least one local module) to a sufficiently visible parent (considering modules that re-export the external item to be parents).