Struct ra_ap_hir_def::nameres::DefMap [−][src]
pub struct DefMap { /* fields omitted */ }
Expand description
Contains the results of (early) name resolution.
A DefMap
stores the module tree and the definitions that are in scope in every module after
item-level macros have been expanded.
Every crate has a primary DefMap
whose root is the crate’s main file (main.rs
/lib.rs
),
computed by the crate_def_map
query. Additionally, every block expression introduces the
opportunity to write arbitrary item and module hierarchies, and thus gets its own DefMap
that
is computed by the block_def_map
query.
Implementations
pub fn with_ancestor_maps<T>(
&self,
db: &dyn DefDatabase,
local_mod: LocalModuleId,
f: &mut dyn FnMut(&DefMap, LocalModuleId) -> Option<T>
) -> Option<T>
pub fn with_ancestor_maps<T>(
&self,
db: &dyn DefDatabase,
local_mod: LocalModuleId,
f: &mut dyn FnMut(&DefMap, LocalModuleId) -> Option<T>
) -> Option<T>
Ascends the DefMap
hierarchy and calls f
with every DefMap
and containing module.
If f
returns Some(val)
, iteration is stopped and Some(val)
is returned. If f
returns
None
, iteration continues.
If this DefMap
is for a block expression, returns the module containing the block (which
might again be a block, or a module inside a block).
Returns the module containing local_mod
, either the parent mod
, or the module containing
the block, if self
corresponds to a block expression.
Get a reference to the def map’s diagnostics.
Trait Implementations
type Output = ModuleData
type Output = ModuleData
The returned type after indexing.
Performs the indexing (container[index]
) operation. Read more
Auto Trait Implementations
impl RefUnwindSafe for DefMap
impl UnwindSafe for DefMap
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.