pub trait Ty<I>: Copy + Debug + Hash + Eq + Into<<I as Interner>::GenericArg> + Into<<I as Interner>::Term> + IntoKind<Kind = TyKind<I>> + TypeSuperVisitable<I> + TypeSuperFoldable<I> + Relate<I> + Flagswhere
I: Interner<Ty = Self>,{
Show 27 methods
// Required methods
fn new_bool(interner: I) -> Self;
fn new_infer(interner: I, var: InferTy) -> Self;
fn new_var(interner: I, var: TyVid) -> Self;
fn new_bound(
interner: I,
debruijn: DebruijnIndex,
var: <I as Interner>::BoundTy,
) -> Self;
fn new_anon_bound(
interner: I,
debruijn: DebruijnIndex,
var: BoundVar,
) -> Self;
fn new_alias(interner: I, kind: AliasTyKind, alias_ty: AliasTy<I>) -> Self;
fn new_error(interner: I, guar: <I as Interner>::ErrorGuaranteed) -> Self;
fn new_adt(
interner: I,
adt_def: <I as Interner>::AdtDef,
args: <I as Interner>::GenericArgs,
) -> Self;
fn new_foreign(interner: I, def_id: <I as Interner>::DefId) -> Self;
fn new_dynamic(
interner: I,
preds: <I as Interner>::BoundExistentialPredicates,
region: <I as Interner>::Region,
kind: DynKind,
) -> Self;
fn new_coroutine(
interner: I,
def_id: <I as Interner>::DefId,
args: <I as Interner>::GenericArgs,
) -> Self;
fn new_coroutine_closure(
interner: I,
def_id: <I as Interner>::DefId,
args: <I as Interner>::GenericArgs,
) -> Self;
fn new_closure(
interner: I,
def_id: <I as Interner>::DefId,
args: <I as Interner>::GenericArgs,
) -> Self;
fn new_coroutine_witness(
interner: I,
def_id: <I as Interner>::DefId,
args: <I as Interner>::GenericArgs,
) -> Self;
fn new_ptr(interner: I, ty: Self, mutbl: Mutability) -> Self;
fn new_ref(
interner: I,
region: <I as Interner>::Region,
ty: Self,
mutbl: Mutability,
) -> Self;
fn new_array_with_const_len(
interner: I,
ty: Self,
len: <I as Interner>::Const,
) -> Self;
fn new_slice(interner: I, ty: Self) -> Self;
fn new_tup(interner: I, tys: &[Self]) -> Self;
fn new_tup_from_iter<It, T>(
interner: I,
iter: It,
) -> <T as CollectAndApply<Self, Self>>::Output
where It: Iterator<Item = T>,
T: CollectAndApply<Self, Self>;
fn tuple_fields(self) -> <I as Interner>::Tys;
fn to_opt_closure_kind(self) -> Option<ClosureKind>;
fn from_closure_kind(interner: I, kind: ClosureKind) -> Self;
fn from_coroutine_closure_kind(interner: I, kind: ClosureKind) -> Self;
fn new_fn_def(
interner: I,
def_id: <I as Interner>::DefId,
args: <I as Interner>::GenericArgs,
) -> Self;
fn new_fn_ptr(interner: I, sig: Binder<I, FnSig<I>>) -> Self;
fn new_pat(interner: I, ty: Self, pat: <I as Interner>::Pat) -> Self;
}Required Methods§
fn new_bool(interner: I) -> Self
fn new_infer(interner: I, var: InferTy) -> Self
fn new_var(interner: I, var: TyVid) -> Self
fn new_bound( interner: I, debruijn: DebruijnIndex, var: <I as Interner>::BoundTy, ) -> Self
fn new_anon_bound(interner: I, debruijn: DebruijnIndex, var: BoundVar) -> Self
fn new_alias(interner: I, kind: AliasTyKind, alias_ty: AliasTy<I>) -> Self
fn new_error(interner: I, guar: <I as Interner>::ErrorGuaranteed) -> Self
fn new_adt( interner: I, adt_def: <I as Interner>::AdtDef, args: <I as Interner>::GenericArgs, ) -> Self
fn new_foreign(interner: I, def_id: <I as Interner>::DefId) -> Self
fn new_dynamic( interner: I, preds: <I as Interner>::BoundExistentialPredicates, region: <I as Interner>::Region, kind: DynKind, ) -> Self
fn new_coroutine( interner: I, def_id: <I as Interner>::DefId, args: <I as Interner>::GenericArgs, ) -> Self
fn new_coroutine_closure( interner: I, def_id: <I as Interner>::DefId, args: <I as Interner>::GenericArgs, ) -> Self
fn new_closure( interner: I, def_id: <I as Interner>::DefId, args: <I as Interner>::GenericArgs, ) -> Self
fn new_coroutine_witness( interner: I, def_id: <I as Interner>::DefId, args: <I as Interner>::GenericArgs, ) -> Self
fn new_ptr(interner: I, ty: Self, mutbl: Mutability) -> Self
fn new_ref( interner: I, region: <I as Interner>::Region, ty: Self, mutbl: Mutability, ) -> Self
fn new_array_with_const_len( interner: I, ty: Self, len: <I as Interner>::Const, ) -> Self
fn new_slice(interner: I, ty: Self) -> Self
fn new_tup(interner: I, tys: &[Self]) -> Self
fn new_tup_from_iter<It, T>(
interner: I,
iter: It,
) -> <T as CollectAndApply<Self, Self>>::Outputwhere
It: Iterator<Item = T>,
T: CollectAndApply<Self, Self>,
fn tuple_fields(self) -> <I as Interner>::Tys
fn to_opt_closure_kind(self) -> Option<ClosureKind>
fn from_closure_kind(interner: I, kind: ClosureKind) -> Self
fn from_coroutine_closure_kind(interner: I, kind: ClosureKind) -> Self
fn new_fn_def( interner: I, def_id: <I as Interner>::DefId, args: <I as Interner>::GenericArgs, ) -> Self
fn new_fn_ptr(interner: I, sig: Binder<I, FnSig<I>>) -> Self
fn new_pat(interner: I, ty: Self, pat: <I as Interner>::Pat) -> Self
Object Safety§
This trait is not object safe.