Const

Trait Const 

pub trait Const<I>:
    Copy
    + Debug
    + Hash
    + Eq
    + Into<<I as Interner>::GenericArg>
    + Into<<I as Interner>::Term>
    + IntoKind<Kind = ConstKind<I>>
    + TypeSuperVisitable<I>
    + TypeSuperFoldable<I>
    + Relate<I>
    + Flags
where I: Interner<Const = Self>,
{ // Required methods fn new_infer(interner: I, var: InferConst) -> Self; fn new_var(interner: I, var: ConstVid) -> Self; fn new_bound( interner: I, debruijn: DebruijnIndex, bound_const: <I as Interner>::BoundConst, ) -> Self; fn new_anon_bound( interner: I, debruijn: DebruijnIndex, var: BoundVar, ) -> Self; fn new_canonical_bound(interner: I, var: BoundVar) -> Self; fn new_placeholder( interner: I, param: <I as Interner>::PlaceholderConst, ) -> Self; fn new_unevaluated(interner: I, uv: UnevaluatedConst<I>) -> Self; fn new_expr(interner: I, expr: <I as Interner>::ExprConst) -> Self; fn new_error(interner: I, guar: <I as Interner>::ErrorGuaranteed) -> Self; // Provided methods fn new_error_with_message(interner: I, msg: impl ToString) -> Self { ... } fn is_ct_var(self) -> bool { ... } fn is_ct_error(self) -> bool { ... } }

Required Methods§

fn new_infer(interner: I, var: InferConst) -> Self

fn new_var(interner: I, var: ConstVid) -> Self

fn new_bound( interner: I, debruijn: DebruijnIndex, bound_const: <I as Interner>::BoundConst, ) -> Self

fn new_anon_bound(interner: I, debruijn: DebruijnIndex, var: BoundVar) -> Self

fn new_canonical_bound(interner: I, var: BoundVar) -> Self

fn new_placeholder( interner: I, param: <I as Interner>::PlaceholderConst, ) -> Self

fn new_unevaluated(interner: I, uv: UnevaluatedConst<I>) -> Self

fn new_expr(interner: I, expr: <I as Interner>::ExprConst) -> Self

fn new_error(interner: I, guar: <I as Interner>::ErrorGuaranteed) -> Self

Provided Methods§

fn new_error_with_message(interner: I, msg: impl ToString) -> Self

fn is_ct_var(self) -> bool

fn is_ct_error(self) -> bool

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl<'tcx> Const<TyCtxt<'tcx>> for Const<'tcx>

§

fn new_infer(tcx: TyCtxt<'tcx>, infer: InferConst) -> Const<'tcx>

§

fn new_var(tcx: TyCtxt<'tcx>, vid: ConstVid) -> Const<'tcx>

§

fn new_bound( interner: TyCtxt<'tcx>, debruijn: DebruijnIndex, bound_const: BoundConst, ) -> Const<'tcx>

§

fn new_anon_bound( tcx: TyCtxt<'tcx>, debruijn: DebruijnIndex, var: BoundVar, ) -> Const<'tcx>

§

fn new_canonical_bound(tcx: TyCtxt<'tcx>, var: BoundVar) -> Const<'tcx>

§

fn new_placeholder( tcx: TyCtxt<'tcx>, placeholder: Placeholder<TyCtxt<'tcx>, BoundConst>, ) -> Const<'tcx>

§

fn new_unevaluated( interner: TyCtxt<'tcx>, uv: UnevaluatedConst<TyCtxt<'tcx>>, ) -> Const<'tcx>

§

fn new_expr(interner: TyCtxt<'tcx>, expr: Expr<'tcx>) -> Const<'tcx>

§

fn new_error(interner: TyCtxt<'tcx>, guar: ErrorGuaranteed) -> Const<'tcx>

Implementors§