struct ConstraintDeps {
    assumptions: IndexVec<ClauseId, FxHashSet<KVid>>,
    heads: IndexVec<ClauseId, Head>,
}Fields§
§assumptions: IndexVec<ClauseId, FxHashSet<KVid>>assumptions for each clause
heads: IndexVec<ClauseId, Head>head of each clause
Implementations§
Source§impl ConstraintDeps
 
impl ConstraintDeps
fn new(node: &Node) -> Self
fn insert_clause(&mut self, assumptions: &[KVid], head: Head)
fn build(&mut self, node: &Node, assumptions: &mut Vec<KVid>)
Sourcefn bot_kvars(self) -> Assignment
 
fn bot_kvars(self) -> Assignment
Computes the set of all kvars that can be assigned to Bot (False), because they are not (transitively) reachable from any concrete ASSUMPTION.
Sourcefn top_kvars(self) -> Assignment
 
fn top_kvars(self) -> Assignment
Computes the set of all kvars that can be assigned to Top (True), because they do not (transitively) reach any concrete HEAD.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ConstraintDeps
impl RefUnwindSafe for ConstraintDeps
impl Send for ConstraintDeps
impl Sync for ConstraintDeps
impl Unpin for ConstraintDeps
impl UnwindSafe for ConstraintDeps
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
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more