Trait rustc::middle::cstore::CrateStore [] [src]

pub trait CrateStore<'tcx> {
    fn stability(&self, def: DefId) -> Option<Stability>;
    fn deprecation(&self, def: DefId) -> Option<Deprecation>;
    fn visibility(&self, def: DefId) -> Visibility;
    fn closure_kind(&self, def_id: DefId) -> ClosureKind;
    fn closure_ty<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> ClosureTy<'tcx>;
    fn item_variances(&self, def: DefId) -> ItemVariances;
    fn repr_attrs(&self, def: DefId) -> Vec<ReprAttr>;
    fn item_type<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> TypeScheme<'tcx>;
    fn visible_parent_map<'a>(&'a self) -> RefMut<'a, DefIdMap<DefId>>;
    fn item_name(&self, def: DefId) -> Name;
    fn item_predicates<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> GenericPredicates<'tcx>;
    fn item_super_predicates<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> GenericPredicates<'tcx>;
    fn item_attrs(&self, def_id: DefId) -> Vec<Attribute>;
    fn item_symbol(&self, def: DefId) -> String;
    fn trait_def<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> TraitDef<'tcx>;
    fn adt_def<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> AdtDefMaster<'tcx>;
    fn method_arg_names(&self, did: DefId) -> Vec<String>;
    fn inherent_implementations_for_type(&self, def_id: DefId) -> Vec<DefId>;
    fn implementations_of_trait(&self, def_id: DefId) -> Vec<DefId>;
    fn provided_trait_methods<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> Vec<Rc<Method<'tcx>>>;
    fn trait_item_def_ids(&self, def: DefId) -> Vec<ImplOrTraitItemId>;
    fn impl_items(&self, impl_def_id: DefId) -> Vec<ImplOrTraitItemId>;
    fn impl_trait_ref<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> Option<TraitRef<'tcx>>;
    fn impl_polarity(&self, def: DefId) -> Option<ImplPolarity>;
    fn custom_coerce_unsized_kind(&self, def: DefId) -> Option<CustomCoerceUnsized>;
    fn associated_consts<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> Vec<Rc<AssociatedConst<'tcx>>>;
    fn impl_parent(&self, impl_def_id: DefId) -> Option<DefId>;
    fn trait_of_item<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Option<DefId>;
    fn impl_or_trait_item<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> Option<ImplOrTraitItem<'tcx>>;
    fn is_const_fn(&self, did: DefId) -> bool;
    fn is_defaulted_trait(&self, did: DefId) -> bool;
    fn is_impl(&self, did: DefId) -> bool;
    fn is_default_impl(&self, impl_did: DefId) -> bool;
    fn is_extern_item<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, did: DefId) -> bool;
    fn is_static_method(&self, did: DefId) -> bool;
    fn is_statically_included_foreign_item(&self, id: NodeId) -> bool;
    fn is_typedef(&self, did: DefId) -> bool;
    fn dylib_dependency_formats(&self, cnum: CrateNum) -> Vec<(CrateNum, LinkagePreference)>;
    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_explicitly_linked(&self, cnum: CrateNum) -> bool;
    fn is_allocator(&self, cnum: CrateNum) -> bool;
    fn is_panic_runtime(&self, cnum: CrateNum) -> bool;
    fn panic_strategy(&self, cnum: CrateNum) -> PanicStrategy;
    fn extern_crate(&self, cnum: CrateNum) -> Option<ExternCrate>;
    fn crate_attrs(&self, cnum: CrateNum) -> Vec<Attribute>;
    fn crate_name(&self, cnum: CrateNum) -> InternedString;
    fn original_crate_name(&self, cnum: CrateNum) -> InternedString;
    fn crate_hash(&self, cnum: CrateNum) -> Svh;
    fn crate_disambiguator(&self, cnum: CrateNum) -> InternedString;
    fn crate_struct_field_attrs(&self, cnum: CrateNum) -> FnvHashMap<DefIdVec<Attribute>>;
    fn plugin_registrar_fn(&self, cnum: CrateNum) -> Option<DefId>;
    fn native_libraries(&self, cnum: CrateNum) -> Vec<(NativeLibraryKind, String)>;
    fn reachable_ids(&self, cnum: CrateNum) -> Vec<DefId>;
    fn def_index_for_def_key(&self, cnum: CrateNum, def: DefKey) -> Option<DefIndex>;
    fn def_key(&self, def: DefId) -> DefKey;
    fn relative_def_path(&self, def: DefId) -> DefPath;
    fn variant_kind(&self, def_id: DefId) -> Option<VariantKind>;
    fn struct_ctor_def_id(&self, struct_def_id: DefId) -> Option<DefId>;
    fn tuple_struct_definition_if_ctor(&self, did: DefId) -> Option<DefId>;
    fn struct_field_names(&self, def: DefId) -> Vec<Name>;
    fn item_children(&self, did: DefId) -> Vec<ChildItem>;
    fn crate_top_level_items(&self, cnum: CrateNum) -> Vec<ChildItem>;
    fn maybe_get_item_ast<'a>(&'tcx self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> FoundAst<'tcx>;
    fn maybe_get_item_mir<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> Option<Mir<'tcx>>;
    fn is_item_mir_available(&self, def: DefId) -> bool;
    fn crates(&self) -> Vec<CrateNum>;
    fn used_libraries(&self) -> Vec<(String, NativeLibraryKind)>;
    fn used_link_args(&self) -> Vec<String>;
    fn metadata_filename(&self) -> &str;
    fn metadata_section_name(&self, target: &Target) -> &str;
    fn encode_type<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, ty: Ty<'tcx>, def_id_to_string: fn<'b>(TyCtxt<'b, 'tcx, 'tcx>, DefId) -> String) -> Vec<u8>;
    fn used_crates(&self, prefer: LinkagePreference) -> Vec<(CrateNum, Option<PathBuf>)>;
    fn used_crate_source(&self, cnum: CrateNum) -> CrateSource;
    fn extern_mod_stmt_cnum(&self, emod_id: NodeId) -> Option<CrateNum>;
    fn encode_metadata<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, reexports: &ExportMap, item_symbols: &RefCell<NodeMap<String>>, link_meta: &LinkMeta, reachable: &NodeSet, mir_map: &MirMap<'tcx>, krate: &Crate) -> Vec<u8>;
    fn metadata_encoding_version(&self) -> &[u8];
}
Unstable (rustc_private)

A store of Rust crates, through with their metadata can be accessed.

Required Methods

fn stability(&self, def: DefId) -> Option<Stability>

Unstable (rustc_private)

fn deprecation(&self, def: DefId) -> Option<Deprecation>

Unstable (rustc_private)

fn visibility(&self, def: DefId) -> Visibility

Unstable (rustc_private)

fn closure_kind(&self, def_id: DefId) -> ClosureKind

Unstable (rustc_private)

fn closure_ty<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> ClosureTy<'tcx>

Unstable (rustc_private)

fn item_variances(&self, def: DefId) -> ItemVariances

Unstable (rustc_private)

fn repr_attrs(&self, def: DefId) -> Vec<ReprAttr>

Unstable (rustc_private)

fn item_type<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> TypeScheme<'tcx>

Unstable (rustc_private)

fn visible_parent_map<'a>(&'a self) -> RefMut<'a, DefIdMap<DefId>>

Unstable (rustc_private)

fn item_name(&self, def: DefId) -> Name

Unstable (rustc_private)

fn item_predicates<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> GenericPredicates<'tcx>

Unstable (rustc_private)

fn item_super_predicates<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> GenericPredicates<'tcx>

Unstable (rustc_private)

fn item_attrs(&self, def_id: DefId) -> Vec<Attribute>

Unstable (rustc_private)

fn item_symbol(&self, def: DefId) -> String

Unstable (rustc_private)

fn trait_def<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> TraitDef<'tcx>

Unstable (rustc_private)

fn adt_def<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> AdtDefMaster<'tcx>

Unstable (rustc_private)

fn method_arg_names(&self, did: DefId) -> Vec<String>

Unstable (rustc_private)

fn inherent_implementations_for_type(&self, def_id: DefId) -> Vec<DefId>

Unstable (rustc_private)

fn implementations_of_trait(&self, def_id: DefId) -> Vec<DefId>

Unstable (rustc_private)

fn provided_trait_methods<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> Vec<Rc<Method<'tcx>>>

Unstable (rustc_private)

fn trait_item_def_ids(&self, def: DefId) -> Vec<ImplOrTraitItemId>

Unstable (rustc_private)

fn impl_items(&self, impl_def_id: DefId) -> Vec<ImplOrTraitItemId>

Unstable (rustc_private)

fn impl_trait_ref<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> Option<TraitRef<'tcx>>

Unstable (rustc_private)

fn impl_polarity(&self, def: DefId) -> Option<ImplPolarity>

Unstable (rustc_private)

fn custom_coerce_unsized_kind(&self, def: DefId) -> Option<CustomCoerceUnsized>

Unstable (rustc_private)

fn associated_consts<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> Vec<Rc<AssociatedConst<'tcx>>>

Unstable (rustc_private)

fn impl_parent(&self, impl_def_id: DefId) -> Option<DefId>

Unstable (rustc_private)

fn trait_of_item<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Option<DefId>

Unstable (rustc_private)

fn impl_or_trait_item<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> Option<ImplOrTraitItem<'tcx>>

Unstable (rustc_private)

fn is_const_fn(&self, did: DefId) -> bool

Unstable (rustc_private)

fn is_defaulted_trait(&self, did: DefId) -> bool

Unstable (rustc_private)

fn is_impl(&self, did: DefId) -> bool

Unstable (rustc_private)

fn is_default_impl(&self, impl_did: DefId) -> bool

Unstable (rustc_private)

fn is_extern_item<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, did: DefId) -> bool

Unstable (rustc_private)

fn is_static_method(&self, did: DefId) -> bool

Unstable (rustc_private)

fn is_statically_included_foreign_item(&self, id: NodeId) -> bool

Unstable (rustc_private)

fn is_typedef(&self, did: DefId) -> bool

Unstable (rustc_private)

fn dylib_dependency_formats(&self, cnum: CrateNum) -> Vec<(CrateNum, LinkagePreference)>

Unstable (rustc_private)

fn lang_items(&self, cnum: CrateNum) -> Vec<(DefIndex, usize)>

Unstable (rustc_private)

fn missing_lang_items(&self, cnum: CrateNum) -> Vec<LangItem>

Unstable (rustc_private)

fn is_staged_api(&self, cnum: CrateNum) -> bool

Unstable (rustc_private)

fn is_explicitly_linked(&self, cnum: CrateNum) -> bool

Unstable (rustc_private)

fn is_allocator(&self, cnum: CrateNum) -> bool

Unstable (rustc_private)

fn is_panic_runtime(&self, cnum: CrateNum) -> bool

Unstable (rustc_private)

fn panic_strategy(&self, cnum: CrateNum) -> PanicStrategy

Unstable (rustc_private)

fn extern_crate(&self, cnum: CrateNum) -> Option<ExternCrate>

Unstable (rustc_private)

fn crate_attrs(&self, cnum: CrateNum) -> Vec<Attribute>

Unstable (rustc_private)

fn crate_name(&self, cnum: CrateNum) -> InternedString

Unstable (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) -> InternedString

Unstable (rustc_private)

The name of the crate as it is stored in the crate's metadata.

fn crate_hash(&self, cnum: CrateNum) -> Svh

Unstable (rustc_private)

fn crate_disambiguator(&self, cnum: CrateNum) -> InternedString

Unstable (rustc_private)

fn crate_struct_field_attrs(&self, cnum: CrateNum) -> FnvHashMap<DefIdVec<Attribute>>

Unstable (rustc_private)

fn plugin_registrar_fn(&self, cnum: CrateNum) -> Option<DefId>

Unstable (rustc_private)

fn native_libraries(&self, cnum: CrateNum) -> Vec<(NativeLibraryKind, String)>

Unstable (rustc_private)

fn reachable_ids(&self, cnum: CrateNum) -> Vec<DefId>

Unstable (rustc_private)

fn def_index_for_def_key(&self, cnum: CrateNum, def: DefKey) -> Option<DefIndex>

Unstable (rustc_private)

fn def_key(&self, def: DefId) -> DefKey

Unstable (rustc_private)

fn relative_def_path(&self, def: DefId) -> DefPath

Unstable (rustc_private)

fn variant_kind(&self, def_id: DefId) -> Option<VariantKind>

Unstable (rustc_private)

fn struct_ctor_def_id(&self, struct_def_id: DefId) -> Option<DefId>

Unstable (rustc_private)

fn tuple_struct_definition_if_ctor(&self, did: DefId) -> Option<DefId>

Unstable (rustc_private)

fn struct_field_names(&self, def: DefId) -> Vec<Name>

Unstable (rustc_private)

fn item_children(&self, did: DefId) -> Vec<ChildItem>

Unstable (rustc_private)

fn crate_top_level_items(&self, cnum: CrateNum) -> Vec<ChildItem>

Unstable (rustc_private)

fn maybe_get_item_ast<'a>(&'tcx self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> FoundAst<'tcx>

Unstable (rustc_private)

fn maybe_get_item_mir<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, def: DefId) -> Option<Mir<'tcx>>

Unstable (rustc_private)

fn is_item_mir_available(&self, def: DefId) -> bool

Unstable (rustc_private)

fn crates(&self) -> Vec<CrateNum>

Unstable (rustc_private)

fn used_libraries(&self) -> Vec<(String, NativeLibraryKind)>

Unstable (rustc_private)
Unstable (rustc_private)

fn metadata_filename(&self) -> &str

Unstable (rustc_private)

fn metadata_section_name(&self, target: &Target) -> &str

Unstable (rustc_private)

fn encode_type<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, ty: Ty<'tcx>, def_id_to_string: fn<'b>(TyCtxt<'b, 'tcx, 'tcx>, DefId) -> String) -> Vec<u8>

Unstable (rustc_private)

fn used_crates(&self, prefer: LinkagePreference) -> Vec<(CrateNum, Option<PathBuf>)>

Unstable (rustc_private)

fn used_crate_source(&self, cnum: CrateNum) -> CrateSource

Unstable (rustc_private)

fn extern_mod_stmt_cnum(&self, emod_id: NodeId) -> Option<CrateNum>

Unstable (rustc_private)

fn encode_metadata<'a>(&self, tcx: TyCtxt<'a, 'tcx, 'tcx>, reexports: &ExportMap, item_symbols: &RefCell<NodeMap<String>>, link_meta: &LinkMeta, reachable: &NodeSet, mir_map: &MirMap<'tcx>, krate: &Crate) -> Vec<u8>

Unstable (rustc_private)

fn metadata_encoding_version(&self) -> &[u8]

Unstable (rustc_private)

Implementors