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
Compare self to
key and return true if they are equal.§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
Checks if this value is equivalent to the given key. Read more
§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