[][src]Enum rustc::ty::ConstKind

pub enum ConstKind<'tcx> {
    Param(ParamConst),
    Infer(InferConst<'tcx>),
    Bound(DebruijnIndexBoundVar),
    Placeholder(PlaceholderConst),
    Unevaluated(DefIdSubstsRef<'tcx>, Option<Promoted>),
    Value(ConstValue<'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 in Rust.

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.

Bound(DebruijnIndexBoundVar)
⚙️ 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.

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

Placeholder(PlaceholderConst)
⚙️ 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.

Unevaluated(DefIdSubstsRef<'tcx>, Option<Promoted>)
⚙️ 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.

Value(ConstValue<'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 to hold computed value.

Methods

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

pub fn try_to_scalar(&self) -> Option<Scalar>[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.

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> Decodable for ConstKind<'tcx>[src]

impl<'tcx> Encodable 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
[src]

impl<T> ArenaAllocatable 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> Decodable for T where
    T: UseSpecializedDecodable
[src]

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

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

impl<T> Erased for T[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 = !

⚙️ 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<E> SpecializationError for E[src]

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.