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
'ahave a debruijn index of 1 and index 0 - the variable
'bhave a debruijn index of 1 and index 1 - the variable
'chave a debruijn index of 0 and index 0 - the variable
'dhave 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: DebruijnIndexDebruijn index, which identifies the binder.
index: usizeIndex 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.
