Enum rustc_middle::mir::ConstantKind[−][src]

pub enum ConstantKind<'tcx> {
    Ty(&'tcx Const<'tcx>),
    Val(ConstValue<'tcx>, Ty<'tcx>),
}

Variants

Ty(&'tcx Const<'tcx>)

This constant came from the type system

Val(ConstValue<'tcx>, Ty<'tcx>)

This constant cannot go back into the type system, as it represents something the type system cannot handle (e.g. pointers).

Implementations

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

pub fn const_for_ty(&self) -> Option<&'tcx Const<'tcx>>[src]

Returns None if the constant is not trivially safe for use in the type system.

pub fn ty(&self) -> Ty<'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_eval_bits(
    &self,
    tcx: TyCtxt<'tcx>,
    param_env: ParamEnv<'tcx>,
    ty: Ty<'tcx>
) -> Option<u128>
[src]

pub fn try_eval_bool(
    &self,
    tcx: TyCtxt<'tcx>,
    param_env: ParamEnv<'tcx>
) -> Option<bool>
[src]

pub fn try_eval_usize(
    &self,
    tcx: TyCtxt<'tcx>,
    param_env: ParamEnv<'tcx>
) -> Option<u64>
[src]

Trait Implementations

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

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

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

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

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

impl<'tcx> From<&'tcx Const<'tcx>> for ConstantKind<'tcx>[src]

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

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

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

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

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

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

Auto Trait Implementations

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

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

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

impl<'tcx> Unpin for ConstantKind<'tcx>

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

Blanket Implementations

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

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

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

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

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

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

type Error = !

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

impl<T> ToOwned for T where
    T: Clone, 
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> WithConstness for T[src]