pub(crate) enum UseSubtyping {
No,
Yes,
}Expand description
Whether to use subtyping or not when inspecting obligations.
Variants§
No
Do not use subtyping. InferenceTable::obligations_for_self_ty will only return
obligations where the self type is known to be equal to the provided vid.
Yes
Use subtyping. InferenceTable::obligations_for_self_ty will return obligations
where the self type is related to the provided vid via subtyping.
Using this requires extra care, as traits holding for a subtype or a supertype, does not necessarily imply that they hold for the respective supertype or subtype.
Trait Implementations§
Source§impl Clone for UseSubtyping
impl Clone for UseSubtyping
Source§fn clone(&self) -> UseSubtyping
fn clone(&self) -> UseSubtyping
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for UseSubtyping
Source§impl Debug for UseSubtyping
impl Debug for UseSubtyping
impl Eq for UseSubtyping
Source§impl PartialEq for UseSubtyping
impl PartialEq for UseSubtyping
impl StructuralPartialEq for UseSubtyping
Auto Trait Implementations§
impl Freeze for UseSubtyping
impl RefUnwindSafe for UseSubtyping
impl Send for UseSubtyping
impl Sync for UseSubtyping
impl Unpin for UseSubtyping
impl UnsafeUnpin for UseSubtyping
impl UnwindSafe for UseSubtyping
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<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§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
§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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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