pub(crate) enum UnknownReason {
SmtTimeout,
Unimplemented,
}Expand description
Why a CheckResult::Unknown could not be discharged.
Carried by the Unknown variant so the report can distinguish a solver
timeout (the common case under the fixed per-query budget) from a structural
“no rule for this shape” gap.
Variants§
SmtTimeout
The SMT solver returned unknown — with the fixed per-query timeout
this is effectively a timeout on a query it could not decide in time.
Unimplemented
The checker has no rule for this shape (unsupported property, unannotated callee, unresolvable operand, undecidable generic, …).
Implementations§
Source§impl UnknownReason
impl UnknownReason
Sourcefn merge(self, other: UnknownReason) -> UnknownReason
fn merge(self, other: UnknownReason) -> UnknownReason
Merge two reasons, keeping the more diagnostic one.
Trait Implementations§
Source§impl Clone for UnknownReason
impl Clone for UnknownReason
impl Copy for UnknownReason
Source§impl Debug for UnknownReason
impl Debug for UnknownReason
impl Eq for UnknownReason
Source§impl PartialEq for UnknownReason
impl PartialEq for UnknownReason
impl StructuralPartialEq for UnknownReason
Auto Trait Implementations§
impl DynSend for UnknownReason
impl DynSync for UnknownReason
impl Freeze for UnknownReason
impl RefUnwindSafe for UnknownReason
impl Send for UnknownReason
impl Sync for UnknownReason
impl Unpin for UnknownReason
impl UnsafeUnpin for UnknownReason
impl UnwindSafe for UnknownReason
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
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