Type Alias ConstKind

Source
pub type ConstKind<'tcx> = ConstKind<TyCtxt<'tcx>>;

Aliased Type§

pub enum ConstKind<'tcx> {
    Param(ParamConst),
    Infer(InferConst),
    Bound(DebruijnIndex, BoundVar),
    Placeholder(Placeholder<BoundVar>),
    Unevaluated(UnevaluatedConst<TyCtxt<'tcx>>),
    Value(Value<'tcx>),
    Error(ErrorGuaranteed),
    Expr(Expr<'tcx>),
}

Variants§

§

Param(ParamConst)

A const generic parameter.

§

Infer(InferConst)

Infer the value of the const.

§

Bound(DebruijnIndex, BoundVar)

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

§

Placeholder(Placeholder<BoundVar>)

A placeholder const - universally quantified higher-ranked const.

§

Unevaluated(UnevaluatedConst<TyCtxt<'tcx>>)

An unnormalized const item such as an anon const or assoc const or free const item. Right now anything other than anon consts does not actually work properly but this should

§

Value(Value<'tcx>)

Used to hold computed value.

§

Error(ErrorGuaranteed)

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

§

Expr(Expr<'tcx>)

Unevaluated non-const-item, used by feature(generic_const_exprs) to represent const arguments such as N + 1 or foo(N)

Layout§

Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.