pub enum InternalFuncKind {
    Val(BinOp),
    Rel(BinOp),
    Cast,
}Expand description
§Primitive Properties
Given a primop op with signature (t1,...,tn) -> t
We define a refined type for op expressed as a RuleMatcher
op :: (x1: t1, ..., xn: tn) -> { t[op_val[op](x1,...,xn)] | op_rel[x1,...,xn] }That is, using two uninterpreted functions op_val and op_rel that respectively denote
- The value of the primop, and
 - Some invariant relation that holds for the primop.
 
The latter can be extended by the user via a property definition, which allows us
to customize primops like << with extra “facts” or lemmas. See tests/tests/pos/surface/primops00.rs for an example.
Variants§
Val(BinOp)
UIF representing the value of a primop
Rel(BinOp)
UIF representing the relationship of a primop
Cast
Trait Implementations§
Source§impl Clone for InternalFuncKind
 
impl Clone for InternalFuncKind
Source§fn clone(&self) -> InternalFuncKind
 
fn clone(&self) -> InternalFuncKind
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moreSource§impl Debug for InternalFuncKind
 
impl Debug for InternalFuncKind
Source§impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for InternalFuncKind
 
impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for InternalFuncKind
Source§impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for InternalFuncKind
 
impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for InternalFuncKind
Source§impl From<InternalFuncKind> for Expr
 
impl From<InternalFuncKind> for Expr
Source§fn from(kind: InternalFuncKind) -> Self
 
fn from(kind: InternalFuncKind) -> Self
Converts to this type from the input type.
Source§impl Hash for InternalFuncKind
 
impl Hash for InternalFuncKind
Source§impl PartialEq for InternalFuncKind
 
impl PartialEq for InternalFuncKind
Source§impl Pretty for InternalFuncKind
 
impl Pretty for InternalFuncKind
impl Eq for InternalFuncKind
impl StructuralPartialEq for InternalFuncKind
Auto Trait Implementations§
impl Freeze for InternalFuncKind
impl RefUnwindSafe for InternalFuncKind
impl Send for InternalFuncKind
impl Sync for InternalFuncKind
impl Unpin for InternalFuncKind
impl UnwindSafe for InternalFuncKind
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
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
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<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