Struct hir_def::body::scope::ExprScopes
source · pub struct ExprScopes { /* private fields */ }
Implementations§
source§impl ExprScopes
impl ExprScopes
pub fn entries(&self, scope: ScopeId) -> &[ScopeEntry]
sourcepub fn block(&self, scope: ScopeId) -> Option<BlockId>
pub fn block(&self, scope: ScopeId) -> Option<BlockId>
If scope
refers to a block expression scope, returns the corresponding BlockId
.
sourcepub fn macro_def(&self, scope: ScopeId) -> Option<&Box<MacroDefId>>
pub fn macro_def(&self, scope: ScopeId) -> Option<&Box<MacroDefId>>
If scope
refers to a macro def scope, returns the corresponding MacroId
.
sourcepub fn label(&self, scope: ScopeId) -> Option<(LabelId, Name)>
pub fn label(&self, scope: ScopeId) -> Option<(LabelId, Name)>
If scope
refers to a labeled expression scope, returns the corresponding Label
.
sourcepub fn scope_chain(
&self,
scope: Option<ScopeId>,
) -> impl Iterator<Item = ScopeId> + '_
pub fn scope_chain( &self, scope: Option<ScopeId>, ) -> impl Iterator<Item = ScopeId> + '_
Returns the scopes in ascending order.
pub fn resolve_name_in_scope( &self, scope: ScopeId, name: &Name, ) -> Option<&ScopeEntry>
pub fn scope_for(&self, expr: ExprId) -> Option<ScopeId>
pub fn scope_by_expr(&self) -> &ArenaMap<ExprId, ScopeId>
Trait Implementations§
source§impl Debug for ExprScopes
impl Debug for ExprScopes
source§impl PartialEq for ExprScopes
impl PartialEq for ExprScopes
impl Eq for ExprScopes
impl StructuralPartialEq for ExprScopes
Auto Trait Implementations§
impl Freeze for ExprScopes
impl RefUnwindSafe for ExprScopes
impl Send for ExprScopes
impl Sync for ExprScopes
impl Unpin for ExprScopes
impl UnwindSafe for ExprScopes
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more