Enum rustc_middle::ty::consts::kind::ConstKind[][src]

pub enum ConstKind<'tcx> {

Represents a constant in Rust.



A const generic parameter.


Infer the value of the const.


Bound const variable, used only when preparing a trait query.


A placeholder const - universally quantified higher-ranked const.


Used in the HIR by using Unevaluated everywhere and later normalizing to one of the other variants when the code is monomorphic enough for that.


Used to hold computed value.


A placeholder for a const which could not be computed; this is propagated to avoid useless error messages.


impl<'tcx> ConstKind<'tcx>[src]

pub fn try_to_value(self) -> Option<ConstValue<'tcx>>[src]

pub fn try_to_scalar(self) -> Option<Scalar>[src]

pub fn try_to_scalar_int(self) -> Option<ScalarInt>[src]

pub fn try_to_bits(self, size: Size) -> Option<u128>[src]

pub fn try_to_bool(self) -> Option<bool>[src]

pub fn try_to_machine_usize(self, tcx: TyCtxt<'tcx>) -> Option<u64>[src]

impl<'tcx> ConstKind<'tcx>[src]

pub fn eval(self, tcx: TyCtxt<'tcx>, param_env: ParamEnv<'tcx>) -> Self[src]

Tries to evaluate the constant if it is Unevaluated. If that doesn’t succeed, return the unevaluated constant.

pub(super) fn try_eval(
    tcx: TyCtxt<'tcx>,
    param_env: ParamEnv<'tcx>
) -> Option<Result<ConstValue<'tcx>, ErrorReported>>

Tries to evaluate the constant if it is Unevaluated. If that isn’t possible or necessary return None.

Trait Implementations

impl<'tcx> Clone for ConstKind<'tcx>[src]

impl<'tcx> Copy for ConstKind<'tcx>[src]

impl<'tcx> Debug for ConstKind<'tcx>[src]

impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for ConstKind<'tcx>[src]

impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for ConstKind<'tcx>[src]

impl<'tcx> Eq for ConstKind<'tcx>[src]

impl<'tcx> Hash for ConstKind<'tcx>[src]

impl<'tcx, '__ctx> HashStable<StableHashingContext<'__ctx>> for ConstKind<'tcx>[src]

impl<'tcx> Ord for ConstKind<'tcx>[src]

impl<'tcx> PartialEq<ConstKind<'tcx>> for ConstKind<'tcx>[src]

impl<'tcx> PartialOrd<ConstKind<'tcx>> for ConstKind<'tcx>[src]

impl<'tcx> StructuralEq for ConstKind<'tcx>[src]

impl<'tcx> StructuralPartialEq for ConstKind<'tcx>[src]

impl<'tcx> TypeFoldable<'tcx> for ConstKind<'tcx>[src]

Auto Trait Implementations

impl<'tcx> !RefUnwindSafe for ConstKind<'tcx>

impl<'tcx> !Send for ConstKind<'tcx>

impl<'tcx> !Sync for ConstKind<'tcx>

impl<'tcx> Unpin for ConstKind<'tcx>

impl<'tcx> !UnwindSafe for ConstKind<'tcx>

Blanket Implementations

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

impl<'tcx, T> ArenaAllocatable<'tcx, ()> for T where
    T: Copy

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

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

impl<'a, T> Captures<'a> for T where
    T: ?Sized

impl<T> From<T> for T[src]

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

impl<T> MaybeResult<T> for T[src]

type Error = !

impl<'tcx, T> Subst<'tcx> for T where
    T: TypeFoldable<'tcx>, 

impl<T> ToOwned for T where
    T: Clone

type Owned = T

The resulting type after obtaining ownership.

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.

impl<T> WithConstness for T[src]