pub struct Local { /* private fields */ }
Expand description
A single local definition.
If the definition of this is part of a “MultiLocal”, that is a local that has multiple declarations due to or-patterns
then this only references a single one of those.
To retrieve the other locals you should use Local::associated_locals
Implementations§
source§impl Local
impl Local
pub fn is_param(self, db: &dyn HirDatabase) -> bool
pub fn as_self_param(self, db: &dyn HirDatabase) -> Option<SelfParam>
pub fn name(self, db: &dyn HirDatabase) -> Name
pub fn is_self(self, db: &dyn HirDatabase) -> bool
pub fn is_mut(self, db: &dyn HirDatabase) -> bool
pub fn is_ref(self, db: &dyn HirDatabase) -> bool
pub fn parent(self, _db: &dyn HirDatabase) -> DefWithBody
pub fn module(self, db: &dyn HirDatabase) -> Module
pub fn ty(self, db: &dyn HirDatabase) -> Type
pub fn associated_locals(self, db: &dyn HirDatabase) -> Box<[Local]>
sourcepub fn representative(self, db: &dyn HirDatabase) -> Local
pub fn representative(self, db: &dyn HirDatabase) -> Local
If this local is part of a multi-local, retrieve the representative local. That is the local that references are being resolved to.
pub fn source(self, db: &dyn HirDatabase) -> InFile<Either<IdentPat, SelfParam>>
Trait Implementations§
source§impl From<(DefWithBodyId, Idx<Pat>)> for Local
impl From<(DefWithBodyId, Idx<Pat>)> for Local
source§fn from((parent, pat_id): (DefWithBodyId, PatId)) -> Self
fn from((parent, pat_id): (DefWithBodyId, PatId)) -> Self
Converts to this type from the input type.
source§impl PartialEq<Local> for Local
impl PartialEq<Local> for Local
impl Copy for Local
impl Eq for Local
impl StructuralEq for Local
impl StructuralPartialEq for Local
Auto Trait Implementations§
impl RefUnwindSafe for Local
impl Send for Local
impl Sync for Local
impl Unpin for Local
impl UnwindSafe for Local
Blanket Implementations§
§impl<T> Cast for T
impl<T> Cast for T
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.