Struct ra_ap_hir_ty::BoundVar [−][src]
pub struct BoundVar { pub debruijn: DebruijnIndex, pub index: usize, }
Expand description
Identifies a particular bound variable within a binder.
Variables are identified by the combination of a DebruijnIndex
,
which identifies the binder, and an index within that binder.
Consider this case:
forall<'a, 'b> { forall<'c, 'd> { ... } }
Within the ...
term:
- the variable
'a
have a debruijn index of 1 and index 0 - the variable
'b
have a debruijn index of 1 and index 1 - the variable
'c
have a debruijn index of 0 and index 0 - the variable
'd
have a debruijn index of 0 and index 1
The variables 'a
and 'b
both have debruijn index of 1 because,
counting out, they are the 2nd binder enclosing ...
. The indices
identify the location within that binder.
The variables 'c
and 'd
both have debruijn index of 0 because
they appear in the innermost binder enclosing the ...
. The
indices identify the location within that binder.
Fields
debruijn: DebruijnIndex
Debruijn index, which identifies the binder.
index: usize
Index within the binder.
Implementations
Creates a new bound variable.
Casts the bound variable to a type.
Wrap the bound variable in a lifetime.
Wraps the bound variable in a constant.
True if this variable is bound within the amount
innermost binders.
Adjusts the debruijn index (see DebruijnIndex::shifted_in
).
Adjusts the debruijn index (see DebruijnIndex::shifted_in
).
Adjusts the debruijn index (see DebruijnIndex::shifted_in
).
Adjusts the debruijn index (see DebruijnIndex::shifted_in
).
Return the index of the bound variable, but only if it is bound
at the innermost binder. Otherwise, returns None
.
Return the index of the bound variable, but only if it is bound
at the innermost binder. Otherwise, returns None
.
Trait Implementations
fn into_displayable<'a>(
&'a self,
db: &'a dyn HirDatabase,
max_size: Option<usize>,
omit_verbose_types: bool,
display_target: DisplayTarget
) -> HirDisplayWrapper<'a, Self> where
Self: Sized,
fn into_displayable<'a>(
&'a self,
db: &'a dyn HirDatabase,
max_size: Option<usize>,
omit_verbose_types: bool,
display_target: DisplayTarget
) -> HirDisplayWrapper<'a, Self> where
Self: Sized,
Returns a Display
able type that is human-readable.
fn display<'a>(&'a self, db: &'a dyn HirDatabase) -> HirDisplayWrapper<'a, Self> where
Self: Sized,
fn display<'a>(&'a self, db: &'a dyn HirDatabase) -> HirDisplayWrapper<'a, Self> where
Self: Sized,
Returns a Display
able type that is human-readable.
Use this for showing types to the user (e.g. diagnostics) Read more
fn display_truncated<'a>(
&'a self,
db: &'a dyn HirDatabase,
max_size: Option<usize>
) -> HirDisplayWrapper<'a, Self> where
Self: Sized,
fn display_truncated<'a>(
&'a self,
db: &'a dyn HirDatabase,
max_size: Option<usize>
) -> HirDisplayWrapper<'a, Self> where
Self: Sized,
Returns a Display
able type that is human-readable and tries to be succinct.
Use this for showing types to the user where space is constrained (e.g. doc popups) Read more
fn display_source_code<'a>(
&'a self,
db: &'a dyn HirDatabase,
module_id: ModuleId
) -> Result<String, DisplaySourceCodeError>
fn display_source_code<'a>(
&'a self,
db: &'a dyn HirDatabase,
module_id: ModuleId
) -> Result<String, DisplaySourceCodeError>
Returns a String representation of self
that can be inserted into the given module.
Use this when generating code (e.g. assists) Read more
fn display_test<'a>(
&'a self,
db: &'a dyn HirDatabase
) -> HirDisplayWrapper<'a, Self> where
Self: Sized,
fn display_test<'a>(
&'a self,
db: &'a dyn HirDatabase
) -> HirDisplayWrapper<'a, Self> where
Self: Sized,
Returns a String representation of self
for test purposes
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Auto Trait Implementations
impl RefUnwindSafe for BoundVar
impl UnwindSafe for BoundVar
Blanket Implementations
Mutably borrows from an owned value. Read more
fn cast<U>(self, interner: &<U as HasInterner>::Interner) -> U where
Self: CastTo<U>,
U: HasInterner,
fn cast<U>(self, interner: &<U as HasInterner>::Interner) -> U where
Self: CastTo<U>,
U: HasInterner,
Cast a value to type U
using CastTo
.
Compare self to key
and return true
if they are equal.
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
impl<T> Any for T where
T: Any,