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 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
source§fn eq(&self, other: &ExprScopes) -> bool
fn eq(&self, other: &ExprScopes) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.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.