Trait DefDatabase
Source pub trait DefDatabase:
InternDatabase
+ ExpandDatabase
+ SourceDatabase
+ Upcast<dyn ExpandDatabase>
+ Upcast<dyn RootQueryDb> {
Show 52 methods
// Required methods
fn expand_proc_attr_macros(&self) -> bool;
fn file_item_tree(&self, file_id: HirFileId) -> Arc<ItemTree>;
fn block_item_tree(&self, block_id: BlockId) -> Arc<ItemTree>;
fn file_item_tree_with_source_map(
&self,
file_id: HirFileId,
) -> (Arc<ItemTree>, Arc<ItemTreeSourceMaps>);
fn block_item_tree_with_source_map(
&self,
block_id: BlockId,
) -> (Arc<ItemTree>, Arc<ItemTreeSourceMaps>);
fn crate_local_def_map(
&self,
krate: Crate,
) -> (Arc<DefMap>, Arc<LocalDefMap>);
fn crate_def_map(&self, krate: Crate) -> Arc<DefMap>;
fn block_def_map(&self, block: BlockId) -> Arc<DefMap>;
fn macro_def(&self, m: MacroId) -> MacroDefId;
fn variant_data(&self, id: VariantId) -> Arc<VariantData>;
fn variant_data_with_diagnostics(
&self,
id: VariantId,
) -> (Arc<VariantData>, DefDiagnostics);
fn struct_data(&self, id: StructId) -> Arc<StructData>;
fn union_data(&self, id: UnionId) -> Arc<StructData>;
fn enum_data(&self, e: EnumId) -> Arc<EnumData>;
fn enum_variants(&self, e: EnumId) -> Arc<EnumVariants>;
fn enum_variant_data(&self, id: EnumVariantId) -> Arc<EnumVariantData>;
fn impl_data(&self, e: ImplId) -> Arc<ImplData>;
fn impl_items(&self, e: ImplId) -> Arc<ImplItems>;
fn impl_items_with_diagnostics(
&self,
e: ImplId,
) -> (Arc<ImplItems>, DefDiagnostics);
fn trait_data(&self, e: TraitId) -> Arc<TraitData>;
fn trait_items(&self, e: TraitId) -> Arc<TraitItems>;
fn trait_items_with_diagnostics(
&self,
tr: TraitId,
) -> (Arc<TraitItems>, DefDiagnostics);
fn trait_alias_data(&self, e: TraitAliasId) -> Arc<TraitAliasData>;
fn type_alias_data(&self, e: TypeAliasId) -> Arc<TypeAliasData>;
fn function_data(&self, func: FunctionId) -> Arc<FunctionData>;
fn const_data(&self, konst: ConstId) -> Arc<ConstData>;
fn static_data(&self, statik: StaticId) -> Arc<StaticData>;
fn macro2_data(&self, makro: Macro2Id) -> Arc<Macro2Data>;
fn macro_rules_data(&self, makro: MacroRulesId) -> Arc<MacroRulesData>;
fn proc_macro_data(&self, makro: ProcMacroId) -> Arc<ProcMacroData>;
fn extern_crate_decl_data(
&self,
extern_crate: ExternCrateId,
) -> Arc<ExternCrateDeclData>;
fn body_with_source_map(
&self,
def: DefWithBodyId,
) -> (Arc<Body>, Arc<BodySourceMap>);
fn body(&self, def: DefWithBodyId) -> Arc<Body>;
fn expr_scopes(&self, def: DefWithBodyId) -> Arc<ExprScopes>;
fn generic_params(&self, def: GenericDefId) -> Arc<GenericParams>;
fn generic_params_with_source_map(
&self,
def: GenericDefId,
) -> (Arc<GenericParams>, Option<Arc<TypesSourceMap>>);
fn fields_attrs(&self, def: VariantId) -> Arc<ArenaMap<LocalFieldId, Attrs>>;
fn fields_attrs_source_map(
&self,
def: VariantId,
) -> Arc<ArenaMap<LocalFieldId, AstPtr<Either<TupleField, RecordField>>>>;
fn attrs(&self, def: AttrDefId) -> Attrs;
fn lang_attr(&self, def: AttrDefId) -> Option<LangItem>;
fn lang_item(
&self,
start_crate: Crate,
item: LangItem,
) -> Option<LangItemTarget>;
fn import_map(&self, krate: Crate) -> Arc<ImportMap>;
fn field_visibilities(
&self,
var: VariantId,
) -> Arc<ArenaMap<LocalFieldId, Visibility>>;
fn function_visibility(&self, def: FunctionId) -> Visibility;
fn const_visibility(&self, def: ConstId) -> Visibility;
fn crate_lang_items(&self, krate: Crate) -> Option<Arc<LangItems>>;
fn notable_traits_in_deps(&self, krate: Crate) -> Arc<[Arc<[TraitId]>]>;
fn crate_notable_traits(&self, krate: Crate) -> Option<Arc<[TraitId]>>;
fn crate_supports_no_std(&self, crate_id: Crate) -> bool;
fn include_macro_invoc(
&self,
crate_id: Crate,
) -> Arc<[(MacroCallId, EditionedFileId)]>;
fn set_expand_proc_attr_macros(&mut self, __value: bool);
fn set_expand_proc_attr_macros_with_durability(
&mut self,
__value: bool,
durability: Durability,
);
}