Trait rustc_trans::middle::cstore::CrateStore
[−]
[src]
pub trait CrateStore {
fn crate_data_as_rc_any(&self, krate: CrateNum) -> Rc<Any + 'static>;
fn describe_def(&self, def: DefId) -> Option<Def>;
fn def_span(&self, sess: &Session, def: DefId) -> Span;
fn stability(&self, def: DefId) -> Option<Stability>;
fn deprecation(&self, def: DefId) -> Option<Deprecation>;
fn visibility(&self, def: DefId) -> Visibility;
fn visible_parent_map(&'a self)
-> RefMut<'a, HashMap<DefId, DefId, BuildHasherDefault<FxHasher>>>;
fn item_generics_cloned(&self, def: DefId) -> Generics;
fn item_attrs(&self, def_id: DefId) -> Vec<Attribute>;
fn fn_arg_names(&self, did: DefId) -> Vec<Symbol>;
fn inherent_implementations_for_type(&self, def_id: DefId) -> Vec<DefId>;
fn implementations_of_trait(&self, filter: Option<DefId>) -> Vec<DefId>;
fn impl_polarity(&self, def: DefId) -> ImplPolarity;
fn impl_parent(&self, impl_def_id: DefId) -> Option<DefId>;
fn trait_of_item(&self, def_id: DefId) -> Option<DefId>;
fn associated_item_cloned(&self, def: DefId) -> AssociatedItem;
fn is_const_fn(&self, did: DefId) -> bool;
fn is_default_impl(&self, impl_did: DefId) -> bool;
fn is_foreign_item(&self, did: DefId) -> bool;
fn is_dllimport_foreign_item(&self, def: DefId) -> bool;
fn is_statically_included_foreign_item(&self, def_id: DefId) -> bool;
fn is_exported_symbol(&self, def_id: DefId) -> bool;
fn dylib_dependency_formats(&self,
cnum: CrateNum)
-> Vec<(CrateNum, LinkagePreference)>;
fn dep_kind(&self, cnum: CrateNum) -> DepKind;
fn export_macros(&self, cnum: CrateNum);
fn lang_items(&self, cnum: CrateNum) -> Vec<(DefIndex, usize)>;
fn missing_lang_items(&self, cnum: CrateNum) -> Vec<LangItem>;
fn is_staged_api(&self, cnum: CrateNum) -> bool;
fn is_allocator(&self, cnum: CrateNum) -> bool;
fn is_panic_runtime(&self, cnum: CrateNum) -> bool;
fn is_compiler_builtins(&self, cnum: CrateNum) -> bool;
fn is_sanitizer_runtime(&self, cnum: CrateNum) -> bool;
fn panic_strategy(&self, cnum: CrateNum) -> PanicStrategy;
fn extern_crate(&self, cnum: CrateNum) -> Option<ExternCrate>;
fn crate_name(&self, cnum: CrateNum) -> Symbol;
fn original_crate_name(&self, cnum: CrateNum) -> Symbol;
fn crate_hash(&self, cnum: CrateNum) -> Svh;
fn crate_disambiguator(&self, cnum: CrateNum) -> Symbol;
fn plugin_registrar_fn(&self, cnum: CrateNum) -> Option<DefId>;
fn derive_registrar_fn(&self, cnum: CrateNum) -> Option<DefId>;
fn native_libraries(&self, cnum: CrateNum) -> Vec<NativeLibrary>;
fn exported_symbols(&self, cnum: CrateNum) -> Vec<DefId>;
fn is_no_builtins(&self, cnum: CrateNum) -> bool;
fn retrace_path(&self,
cnum: CrateNum,
path_data: &[DisambiguatedDefPathData])
-> Option<DefId>;
fn def_key(&self, def: DefId) -> DefKey;
fn def_path(&self, def: DefId) -> DefPath;
fn struct_field_names(&self, def: DefId) -> Vec<Symbol>;
fn item_children(&self, did: DefId) -> Vec<Export>;
fn load_macro(&self, did: DefId, sess: &Session) -> LoadedMacro;
fn maybe_get_item_body(&self,
tcx: TyCtxt<'a, 'tcx, 'tcx>,
def: DefId)
-> Option<&'tcx Body>;
fn item_body_nested_bodies(&self, def: DefId) -> BTreeMap<BodyId, Body>;
fn const_is_rvalue_promotable_to_static(&self, def: DefId) -> bool;
fn is_item_mir_available(&self, def: DefId) -> bool;
fn crates(&self) -> Vec<CrateNum>;
fn used_libraries(&self) -> Vec<NativeLibrary>;
fn used_link_args(&self) -> Vec<String>;
fn metadata_filename(&self) -> &str;
fn metadata_section_name(&self, target: &Target) -> &str;
fn used_crates(&self,
prefer: LinkagePreference)
-> Vec<(CrateNum, LibSource)>;
fn used_crate_source(&self, cnum: CrateNum) -> CrateSource;
fn extern_mod_stmt_cnum(&self, emod_id: NodeId) -> Option<CrateNum>;
fn encode_metadata(&self,
tcx: TyCtxt<'a, 'tcx, 'tcx>,
reexports: &HashMap<NodeId, Vec<Export>, BuildHasherDefault<FxHasher>>,
link_meta: &LinkMeta,
reachable: &HashSet<NodeId, BuildHasherDefault<FxHasher>>)
-> Vec<u8>;
fn metadata_encoding_version(&self) -> &[u8];
}🔬 This is a nightly-only experimental API. (
rustc_private)A store of Rust crates, through with their metadata can be accessed.
Required Methods
fn crate_data_as_rc_any(&self, krate: CrateNum) -> Rc<Any + 'static>
🔬 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 visible_parent_map(&'a self)
-> RefMut<'a, HashMap<DefId, DefId, BuildHasherDefault<FxHasher>>>
-> RefMut<'a, HashMap<DefId, DefId, BuildHasherDefault<FxHasher>>>
🔬 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<Symbol>
🔬 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_id: 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_dllimport_foreign_item(&self, def: 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 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 extern_crate(&self, cnum: CrateNum) -> Option<ExternCrate>
🔬 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.
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 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_data: &[DisambiguatedDefPathData])
-> Option<DefId>
cnum: CrateNum,
path_data: &[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)fn def_path(&self, def: DefId) -> DefPath
🔬 This is a nightly-only experimental API. (
rustc_private)fn struct_field_names(&self, def: DefId) -> Vec<Symbol>
🔬 This is a nightly-only experimental API. (
rustc_private)fn item_children(&self, did: DefId) -> Vec<Export>
🔬 This is a nightly-only experimental API. (
rustc_private)fn load_macro(&self, did: DefId, sess: &Session) -> LoadedMacro
🔬 This is a nightly-only experimental API. (
rustc_private)fn maybe_get_item_body(&self,
tcx: TyCtxt<'a, 'tcx, 'tcx>,
def: DefId)
-> Option<&'tcx Body>
tcx: TyCtxt<'a, 'tcx, 'tcx>,
def: 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(&self,
tcx: TyCtxt<'a, 'tcx, 'tcx>,
reexports: &HashMap<NodeId, Vec<Export>, BuildHasherDefault<FxHasher>>,
link_meta: &LinkMeta,
reachable: &HashSet<NodeId, BuildHasherDefault<FxHasher>>)
-> Vec<u8>
tcx: TyCtxt<'a, 'tcx, 'tcx>,
reexports: &HashMap<NodeId, Vec<Export>, BuildHasherDefault<FxHasher>>,
link_meta: &LinkMeta,
reachable: &HashSet<NodeId, BuildHasherDefault<FxHasher>>)
-> 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)Implementors
impl CrateStore for DummyCrateStore