Enum chalk_solve::rust_ir::WellKnownTrait
source · pub enum WellKnownTrait {
Show 16 variants
Sized,
Copy,
Clone,
Drop,
FnOnce,
FnMut,
Fn,
Unsize,
Unpin,
CoerceUnsized,
DiscriminantKind,
Coroutine,
DispatchFromDyn,
Tuple,
Pointee,
FnPtr,
}
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
Unsize
Unpin
CoerceUnsized
DiscriminantKind
Coroutine
DispatchFromDyn
Tuple
Pointee
FnPtr
Trait Implementations§
source§impl Clone for WellKnownTrait
impl Clone for WellKnownTrait
source§fn clone(&self) -> WellKnownTrait
fn clone(&self) -> WellKnownTrait
Returns a copy 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§fn eq(&self, other: &WellKnownTrait) -> bool
fn eq(&self, other: &WellKnownTrait) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for WellKnownTrait
impl PartialOrd for WellKnownTrait
source§fn partial_cmp(&self, other: &WellKnownTrait) -> Option<Ordering>
fn partial_cmp(&self, other: &WellKnownTrait) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§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: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§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, 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.