pub struct ScopedEquivManager { /* private fields */ }Expand description
A scoped equivalence manager that supports push/pop of equivalence frames.
This allows backtracking during type checking — when a unification attempt fails, all equivalences added in that scope are rolled back.
Implementations§
Source§impl ScopedEquivManager
impl ScopedEquivManager
Sourcepub fn push_scope(&mut self)
pub fn push_scope(&mut self)
Push a new scope.
Sourcepub fn is_equiv(&mut self, a: &Expr, b: &Expr) -> bool
pub fn is_equiv(&mut self, a: &Expr, b: &Expr) -> bool
Check if two expressions are equivalent.
Sourcepub fn scope_depth(&self) -> usize
pub fn scope_depth(&self) -> usize
Return the current scope depth.
Sourcepub fn total_equivs(&self) -> usize
pub fn total_equivs(&self) -> usize
Return the total number of equivalences across all scopes.
Trait Implementations§
Source§impl Debug for ScopedEquivManager
impl Debug for ScopedEquivManager
Source§impl Default for ScopedEquivManager
impl Default for ScopedEquivManager
Source§fn default() -> ScopedEquivManager
fn default() -> ScopedEquivManager
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ScopedEquivManager
impl RefUnwindSafe for ScopedEquivManager
impl Send for ScopedEquivManager
impl Sync for ScopedEquivManager
impl Unpin for ScopedEquivManager
impl UnsafeUnpin for ScopedEquivManager
impl UnwindSafe for ScopedEquivManager
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