Trait ra_ap_hir_def::db::DefDatabase
source · pub trait DefDatabase: Database + HasQueryGroup<DefDatabaseStorage> + InternDatabase + ExpandDatabase + Upcast<dyn ExpandDatabase> {
Show 46 methods
// Required methods
fn expand_proc_attr_macros(&self) -> bool;
fn set_expand_proc_attr_macros(&mut self, value__: bool);
fn set_expand_proc_attr_macros_with_durability(
&mut self,
value__: bool,
durability__: Durability
);
fn file_item_tree(&self, file_id: HirFileId) -> Arc<ItemTree>;
fn block_item_tree_query(&self, block_id: BlockId) -> Arc<ItemTree>;
fn crate_def_map(&self, krate: CrateId) -> Arc<DefMap>;
fn crate_def_map_query(&self, krate: CrateId) -> Arc<DefMap>;
fn block_def_map(&self, block: BlockId) -> Arc<DefMap>;
fn macro_def(&self, m: MacroId) -> MacroDefId;
fn struct_data(&self, id: StructId) -> Arc<StructData>;
fn struct_data_with_diagnostics(
&self,
id: StructId
) -> (Arc<StructData>, Arc<[DefDiagnostic]>);
fn union_data(&self, id: UnionId) -> Arc<StructData>;
fn union_data_with_diagnostics(
&self,
id: UnionId
) -> (Arc<StructData>, Arc<[DefDiagnostic]>);
fn enum_data(&self, e: EnumId) -> Arc<EnumData>;
fn enum_data_with_diagnostics(
&self,
e: EnumId
) -> (Arc<EnumData>, Arc<[DefDiagnostic]>);
fn impl_data(&self, e: ImplId) -> Arc<ImplData>;
fn impl_data_with_diagnostics(
&self,
e: ImplId
) -> (Arc<ImplData>, Arc<[DefDiagnostic]>);
fn trait_data(&self, e: TraitId) -> Arc<TraitData>;
fn trait_data_with_diagnostics(
&self,
tr: TraitId
) -> (Arc<TraitData>, Arc<[DefDiagnostic]>);
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, konst: 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) -> Interned<GenericParams>;
fn variants_attrs(
&self,
def: EnumId
) -> Arc<ArenaMap<LocalEnumVariantId, Attrs>>;
fn fields_attrs(&self, def: VariantId) -> Arc<ArenaMap<LocalFieldId, Attrs>>;
fn variants_attrs_source_map(
&self,
def: EnumId
) -> Arc<ArenaMap<LocalEnumVariantId, AstPtr<Variant>>>;
fn fields_attrs_source_map(
&self,
def: VariantId
) -> Arc<ArenaMap<LocalFieldId, Either<AstPtr<TupleField>, AstPtr<RecordField>>>>;
fn attrs(&self, def: AttrDefId) -> Attrs;
fn lang_attr(&self, def: AttrDefId) -> Option<LangItem>;
fn attrs_with_owner(&self, def: AttrDefId) -> AttrsWithOwner;
fn lang_item(
&self,
start_crate: CrateId,
item: LangItem
) -> Option<LangItemTarget>;
fn import_map(&self, krate: CrateId) -> 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: CrateId) -> Arc<LangItems>;
fn crate_supports_no_std(&self, crate_id: CrateId) -> bool;
}Required Methods§
fn expand_proc_attr_macros(&self) -> bool
sourcefn set_expand_proc_attr_macros(&mut self, value__: bool)
fn set_expand_proc_attr_macros(&mut self, value__: bool)
Set the value of the expand_proc_attr_macros input.
See expand_proc_attr_macros for details.
Note: Setting values will trigger cancellation of any ongoing queries; this method blocks until those queries have been cancelled.
sourcefn set_expand_proc_attr_macros_with_durability(
&mut self,
value__: bool,
durability__: Durability
)
fn set_expand_proc_attr_macros_with_durability( &mut self, value__: bool, durability__: Durability )
Set the value of the expand_proc_attr_macros input with a
specific durability instead of the default of
Durability::LOW. You can use Durability::MAX
to promise that its value will never change again.
See expand_proc_attr_macros for details.
Note: Setting values will trigger cancellation of any ongoing queries; this method blocks until those queries have been cancelled.
fn file_item_tree(&self, file_id: HirFileId) -> Arc<ItemTree>
fn block_item_tree_query(&self, block_id: BlockId) -> Arc<ItemTree>
fn crate_def_map(&self, krate: CrateId) -> Arc<DefMap>
fn crate_def_map_query(&self, krate: CrateId) -> Arc<DefMap>
sourcefn block_def_map(&self, block: BlockId) -> Arc<DefMap>
fn block_def_map(&self, block: BlockId) -> Arc<DefMap>
Computes the block-level DefMap, returning None when block doesn’t contain any inner
items directly.
For example:
fn f() { // (0)
{ // (1)
fn inner() {}
}
}The block_def_map for block 0 would return None, while block_def_map of block 1 would
return a DefMap containing inner.