[][src]Enum rustc_mir::interpret::ConstValue

pub enum ConstValue<'tcx> where
    'tcx: 'tcx, 
{ Param(ParamConst), Infer(InferConst<'tcx>), Placeholder(Placeholder<BoundVar>), Scalar(Scalar<(), AllocId>), Slice { data: &'tcx Allocation<(), ()>, start: usize, end: usize, }, ByRef { alloc: &'tcx Allocation<(), ()>, offset: Size, }, Unevaluated(DefId, &'tcx List<Kind<'tcx>>), }
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Represents a constant value in Rust. Scalar and Slice are optimizations for array length computations, enum discriminants and the pattern matching logic.

Variants

Param(ParamConst)
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

A const generic parameter.

Infer(InferConst<'tcx>)
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Infer the value of the const.

Placeholder(Placeholder<BoundVar>)
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

A placeholder const - universally quantified higher-ranked const.

Scalar(Scalar<(), AllocId>)
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Used only for types with layout::abi::Scalar ABI and ZSTs.

Not using the enum Value to encode that this must not be Undef.

Slice
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Used only for &[u8] and &str

Fields of Slice

data: &'tcx Allocation<(), ()>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

start: usize
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

end: usize
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

ByRef
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

A value not represented/representable by Scalar or Slice

Fields of ByRef

alloc: &'tcx Allocation<(), ()>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

The backing memory of the value, may contain more memory than needed for just the value in order to share Allocations between values

offset: Size
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Offset into alloc

Unevaluated(DefId, &'tcx List<Kind<'tcx>>)
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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.

Methods

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

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn try_to_ptr(&self) -> Option<Pointer<(), AllocId>>[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Trait Implementations

impl<'tcx> Decodable for ConstValue<'tcx>[src]

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

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

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

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

impl<'tcx> Encodable for ConstValue<'tcx>[src]

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

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

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

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

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

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

Auto Trait Implementations

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

impl<'tcx> Unpin for ConstValue<'tcx>

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

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

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

Blanket Implementations

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

type Owned = T

The resulting type after obtaining ownership.

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

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

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> BorrowMut<T> for T where
    T: ?Sized
[src]

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

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

impl<T> Encodable for T where
    T: UseSpecializedEncodable + ?Sized
[src]

impl<T> Decodable for T where
    T: UseSpecializedDecodable
[src]

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

type Error = !

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<T> Erased for T[src]

impl<E> SpecializationError for E[src]

impl<T> ArenaAllocatable for T where
    T: Copy
[src]

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

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

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