Struct chalk_ir::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.
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
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
Cast a value to type U
using CastTo
.