pub struct Unifier { /* private fields */ }Expand description
Unification engine with constraint solving
Implementations§
Source§impl Unifier
impl Unifier
Sourcepub fn add_constraint(&mut self, constraint: Constraint)
pub fn add_constraint(&mut self, constraint: Constraint)
Add a constraint to the queue
Sourcepub fn declare_mvar(&mut self, mvar: MetaVarId, ty: TermId)
pub fn declare_mvar(&mut self, mvar: MetaVarId, ty: TermId)
Declare a metavariable with its type
Sourcepub fn solve(
&mut self,
arena: &mut Arena,
env: &Environment,
ctx: &Context,
) -> Result<()>
pub fn solve( &mut self, arena: &mut Arena, env: &Environment, ctx: &Context, ) -> Result<()>
Solve all pending constraints
Sourcepub fn substitution(&self) -> &Substitution
pub fn substitution(&self) -> &Substitution
Get the current substitution
Sourcepub fn num_constraints(&self) -> usize
pub fn num_constraints(&self) -> usize
Get the number of pending constraints
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Unifier
impl RefUnwindSafe for Unifier
impl Send for Unifier
impl Sync for Unifier
impl Unpin for Unifier
impl UnwindSafe for Unifier
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