pub enum WellKnownTrait {
Show 20 variants
Sized,
Copy,
Clone,
Drop,
FnOnce,
FnMut,
Fn,
AsyncFnOnce,
AsyncFnMut,
AsyncFn,
Unsize,
Unpin,
CoerceUnsized,
DiscriminantKind,
Coroutine,
DispatchFromDyn,
Tuple,
Pointee,
FnPtr,
Future,
}Expand description
A list of the traits that are “well known” to chalk, which means that the chalk-solve crate has special, hard-coded impls for them.
Variants§
Sized
Copy
Clone
Drop
FnOnce
The trait FnOnce<Args> - the generic argument Args is always a tuple
corresponding to the arguments of a function implementing this trait.
E.g. fn(u8, bool): FnOnce<(u8, bool)>
FnMut
Fn
AsyncFnOnce
AsyncFnMut
AsyncFn
Unsize
Unpin
CoerceUnsized
DiscriminantKind
Coroutine
DispatchFromDyn
Tuple
Pointee
FnPtr
Future
Trait Implementations§
Source§impl Clone for WellKnownTrait
impl Clone for WellKnownTrait
Source§fn clone(&self) -> WellKnownTrait
fn clone(&self) -> WellKnownTrait
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 WellKnownTrait
impl Debug for WellKnownTrait
Source§impl Hash for WellKnownTrait
impl Hash for WellKnownTrait
Source§impl Ord for WellKnownTrait
impl Ord for WellKnownTrait
Source§fn cmp(&self, other: &WellKnownTrait) -> Ordering
fn cmp(&self, other: &WellKnownTrait) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for WellKnownTrait
impl PartialEq for WellKnownTrait
Source§impl PartialOrd for WellKnownTrait
impl PartialOrd for WellKnownTrait
Source§impl<I: Interner> TypeVisitable<I> for WellKnownTrait
impl<I: Interner> TypeVisitable<I> for WellKnownTrait
Source§fn visit_with<B>(
&self,
_visitor: &mut dyn TypeVisitor<I, BreakTy = B>,
_outer_binder: DebruijnIndex,
) -> ControlFlow<B>
fn visit_with<B>( &self, _visitor: &mut dyn TypeVisitor<I, BreakTy = B>, _outer_binder: DebruijnIndex, ) -> ControlFlow<B>
Apply the given visitor
visitor to self; binders is the
number of binders that are in scope when beginning the
visitor. Typically binders starts as 0, but is adjusted when
we encounter Binders<T> in the IR or other similar
constructs.impl Copy for WellKnownTrait
impl Eq for WellKnownTrait
impl StructuralPartialEq for WellKnownTrait
Auto Trait Implementations§
impl Freeze for WellKnownTrait
impl RefUnwindSafe for WellKnownTrait
impl Send for WellKnownTrait
impl Sync for WellKnownTrait
impl Unpin for WellKnownTrait
impl UnwindSafe for WellKnownTrait
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> Cast for T
impl<T> Cast for T
Source§fn cast<U>(self, interner: <U as HasInterner>::Interner) -> Uwhere
Self: CastTo<U>,
U: HasInterner,
fn cast<U>(self, interner: <U as HasInterner>::Interner) -> Uwhere
Self: CastTo<U>,
U: HasInterner,
Cast a value to type
U using CastTo.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T, I> VisitExt<I> for Twhere
I: Interner,
T: TypeVisitable<I>,
impl<T, I> VisitExt<I> for Twhere
I: Interner,
T: TypeVisitable<I>,
Source§fn has_free_vars(&self, interner: I) -> bool
fn has_free_vars(&self, interner: I) -> bool
Check whether there are free (non-bound) variables.