Enum clippy_utils::ty::type_certainty::certainty::Certainty

source ·
pub enum Certainty {
    Uncertain,
    Certain(Option<DefId>),
    Contradiction,
}

Variants§

§

Uncertain

Determining the type requires contextual information.

§

Certain(Option<DefId>)

The type can be determined purely from subexpressions. If the argument is Some(..), the specific DefId is known. Such arguments are needed to handle path segments whose res is Res::Err.

§

Contradiction

The heuristic believes that more than one DefId applies to a type—this is a bug.

Implementations§

source§

impl Certainty

source

pub fn join(self, other: Self) -> Self

Join two Certaintys preserving their DefIds (if any). Generally speaking, this method should be used only when self and other refer directly to types. Otherwise, join_clearing_def_ids should be used.

source

pub fn join_clearing_def_ids(self, other: Self) -> Self

Join two Certaintys after clearing their DefIds. This method should be used when self or other do not necessarily refer to types, e.g., when they are aggregations of other Certaintys.

source

pub fn clear_def_id(self) -> Certainty

source

pub fn with_def_id(self, def_id: DefId) -> Certainty

source

pub fn to_def_id(self) -> Option<DefId>

source

pub fn is_certain(self) -> bool

Trait Implementations§

source§

impl Clone for Certainty

source§

fn clone(&self) -> Certainty

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Certainty

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Meet for Certainty

source§

fn meet(self, other: Self) -> Self

source§

impl PartialEq for Certainty

source§

fn eq(&self, other: &Certainty) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for Certainty

source§

impl Eq for Certainty

source§

impl StructuralPartialEq for Certainty

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

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
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 8 bytes

Size for each variant:

  • Uncertain: 0 bytes
  • Certain: 8 bytes
  • Contradiction: 0 bytes