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§

source

fn expand_proc_attr_macros(&self) -> bool

source

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.

source

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.

source

fn file_item_tree(&self, file_id: HirFileId) -> Arc<ItemTree>

source

fn block_item_tree_query(&self, block_id: BlockId) -> Arc<ItemTree>

source

fn crate_def_map(&self, krate: CrateId) -> Arc<DefMap>

source

fn crate_def_map_query(&self, krate: CrateId) -> Arc<DefMap>

source

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.

source

fn macro_def(&self, m: MacroId) -> MacroDefId

source

fn struct_data(&self, id: StructId) -> Arc<StructData>

source

fn struct_data_with_diagnostics( &self, id: StructId ) -> (Arc<StructData>, Arc<[DefDiagnostic]>)

source

fn union_data(&self, id: UnionId) -> Arc<StructData>

source

fn union_data_with_diagnostics( &self, id: UnionId ) -> (Arc<StructData>, Arc<[DefDiagnostic]>)

source

fn enum_data(&self, e: EnumId) -> Arc<EnumData>

source

fn enum_data_with_diagnostics( &self, e: EnumId ) -> (Arc<EnumData>, Arc<[DefDiagnostic]>)

source

fn impl_data(&self, e: ImplId) -> Arc<ImplData>

source

fn impl_data_with_diagnostics( &self, e: ImplId ) -> (Arc<ImplData>, Arc<[DefDiagnostic]>)

source

fn trait_data(&self, e: TraitId) -> Arc<TraitData>

source

fn trait_data_with_diagnostics( &self, tr: TraitId ) -> (Arc<TraitData>, Arc<[DefDiagnostic]>)

source

fn trait_alias_data(&self, e: TraitAliasId) -> Arc<TraitAliasData>

source

fn type_alias_data(&self, e: TypeAliasId) -> Arc<TypeAliasData>

source

fn function_data(&self, func: FunctionId) -> Arc<FunctionData>

source

fn const_data(&self, konst: ConstId) -> Arc<ConstData>

source

fn static_data(&self, konst: StaticId) -> Arc<StaticData>

source

fn macro2_data(&self, makro: Macro2Id) -> Arc<Macro2Data>

source

fn macro_rules_data(&self, makro: MacroRulesId) -> Arc<MacroRulesData>

source

fn proc_macro_data(&self, makro: ProcMacroId) -> Arc<ProcMacroData>

source

fn extern_crate_decl_data( &self, extern_crate: ExternCrateId ) -> Arc<ExternCrateDeclData>

source

fn body_with_source_map( &self, def: DefWithBodyId ) -> (Arc<Body>, Arc<BodySourceMap>)

source

fn body(&self, def: DefWithBodyId) -> Arc<Body>

source

fn expr_scopes(&self, def: DefWithBodyId) -> Arc<ExprScopes>

source

fn generic_params(&self, def: GenericDefId) -> Interned<GenericParams>

source

fn variants_attrs( &self, def: EnumId ) -> Arc<ArenaMap<LocalEnumVariantId, Attrs>>

source

fn fields_attrs(&self, def: VariantId) -> Arc<ArenaMap<LocalFieldId, Attrs>>

source

fn variants_attrs_source_map( &self, def: EnumId ) -> Arc<ArenaMap<LocalEnumVariantId, AstPtr<Variant>>>

source

fn fields_attrs_source_map( &self, def: VariantId ) -> Arc<ArenaMap<LocalFieldId, Either<AstPtr<TupleField>, AstPtr<RecordField>>>>

source

fn attrs(&self, def: AttrDefId) -> Attrs

source

fn lang_attr(&self, def: AttrDefId) -> Option<LangItem>

source

fn attrs_with_owner(&self, def: AttrDefId) -> AttrsWithOwner

source

fn lang_item( &self, start_crate: CrateId, item: LangItem ) -> Option<LangItemTarget>

source

fn import_map(&self, krate: CrateId) -> Arc<ImportMap>

source

fn field_visibilities( &self, var: VariantId ) -> Arc<ArenaMap<LocalFieldId, Visibility>>

source

fn function_visibility(&self, def: FunctionId) -> Visibility

source

fn const_visibility(&self, def: ConstId) -> Visibility

source

fn crate_lang_items(&self, krate: CrateId) -> Arc<LangItems>

source

fn crate_supports_no_std(&self, crate_id: CrateId) -> bool

Implementors§

source§

impl<DB> DefDatabase for DB
where DB: InternDatabase + ExpandDatabase + Upcast<dyn ExpandDatabase> + Database + HasQueryGroup<DefDatabaseStorage>,