Trait rustc_infer::infer::canonical::ir::Interner

source ·
pub trait Interner: Sized + Copy + IrPrint<AliasTy<Self>> + IrPrint<AliasTerm<Self>> + IrPrint<TraitRef<Self>> + IrPrint<TraitPredicate<Self>> + IrPrint<ExistentialTraitRef<Self>> + IrPrint<ExistentialProjection<Self>> + IrPrint<ProjectionPredicate<Self>> + IrPrint<NormalizesTo<Self>> + IrPrint<SubtypePredicate<Self>> + IrPrint<CoercePredicate<Self>> + IrPrint<FnSig<Self>> {
Show 103 associated items type DefId: DefId<Self>; type LocalDefId: Copy + Debug + Hash + Eq + Into<Self::DefId> + TypeFoldable<Self>; type GenericArgs: GenericArgs<Self>; type GenericArgsSlice: Copy + Debug + Hash + Eq + Deref<Target = [Self::GenericArg]>; type GenericArg: GenericArg<Self>; type Term: Term<Self>; type BoundVarKinds: Copy + Debug + Hash + Eq + Deref + Default where <Self::BoundVarKinds as Deref>::Target: Deref<Target = [Self::BoundVarKind]>; type BoundVarKind: Copy + Debug + Hash + Eq; type PredefinedOpaques: Copy + Debug + Hash + Eq + TypeFoldable<Self> + Deref<Target = PredefinedOpaquesData<Self>>; type DefiningOpaqueTypes: Copy + Debug + Hash + Default + Eq + TypeVisitable<Self> + Deref where <Self::DefiningOpaqueTypes as Deref>::Target: Deref<Target = [Self::LocalDefId]>; type CanonicalGoalEvaluationStepRef: Copy + Debug + Hash + Eq + Deref<Target = CanonicalGoalEvaluationStep<Self>>; type CanonicalVars: Copy + Debug + Hash + Eq + IntoIterator<Item = CanonicalVarInfo<Self>> + Deref + Default where <Self::CanonicalVars as Deref>::Target: Deref<Target = [CanonicalVarInfo<Self>]>; type ExternalConstraints: Copy + Debug + Hash + Eq + TypeFoldable<Self> + Deref<Target = ExternalConstraintsData<Self>>; type DepNodeIndex; type Ty: Ty<Self>; type Tys: Tys<Self>; type FnInputTys: Copy + Debug + Hash + Eq + Deref<Target = [Self::Ty]> + TypeVisitable<Self>; type ParamTy: Copy + Debug + Hash + Eq + ParamLike; type BoundTy: Copy + Debug + Hash + Eq + BoundVarLike<Self>; type PlaceholderTy: PlaceholderLike; type ErrorGuaranteed: Copy + Debug + Hash + Eq; type BoundExistentialPredicates: BoundExistentialPredicates<Self>; type AllocId: Copy + Debug + Hash + Eq; type Pat: Copy + Debug + Hash + Eq + Relate<Self>; type Safety: Safety<Self>; type Abi: Abi<Self>; type Const: Const<Self>; type PlaceholderConst: PlaceholderLike; type ParamConst: Copy + Debug + Hash + Eq + ParamLike; type BoundConst: Copy + Debug + Hash + Eq + BoundVarLike<Self>; type ValueConst: Copy + Debug + Hash + Eq; type ExprConst: Copy + Debug + Hash + Eq + Relate<Self>; type Region: Region<Self>; type EarlyParamRegion: Copy + Debug + Hash + Eq + ParamLike; type LateParamRegion: Copy + Debug + Hash + Eq; type BoundRegion: Copy + Debug + Hash + Eq + BoundVarLike<Self>; type PlaceholderRegion: PlaceholderLike; type ParamEnv: ParamEnv<Self>; type Predicate: Predicate<Self>; type Clause: Clause<Self>; type Clauses: Copy + Debug + Hash + Eq + TypeSuperVisitable<Self> + Flags; type EvaluationCache: EvaluationCache<Self>; type GenericsOf: GenericsOf<Self>; type VariancesOf: Copy + Debug + Deref<Target = [Variance]> + IntoIterator where <Self::VariancesOf as IntoIterator>::Item: Deref<Target = Variance>; type AdtDef: AdtDef<Self>; type Features: Features<Self>; type UnsizingParams: Deref<Target = BitSet<u32>>; // Required methods fn mk_predefined_opaques_in_body( self, data: PredefinedOpaquesData<Self>, ) -> Self::PredefinedOpaques; fn mk_canonical_var_infos( self, infos: &[CanonicalVarInfo<Self>], ) -> Self::CanonicalVars; fn mk_external_constraints( self, data: ExternalConstraintsData<Self>, ) -> Self::ExternalConstraints; fn with_cached_task<T>( self, task: impl FnOnce() -> T, ) -> (T, Self::DepNodeIndex); fn evaluation_cache(self, mode: SolverMode) -> Self::EvaluationCache; fn expand_abstract_consts<T>(self, t: T) -> T where T: TypeFoldable<Self>; fn generics_of(self, def_id: Self::DefId) -> Self::GenericsOf; fn variances_of(self, def_id: Self::DefId) -> Self::VariancesOf; fn type_of(self, def_id: Self::DefId) -> EarlyBinder<Self, Self::Ty>; fn adt_def(self, adt_def_id: Self::DefId) -> Self::AdtDef; fn alias_ty_kind(self, alias: AliasTy<Self>) -> AliasTyKind; fn alias_term_kind(self, alias: AliasTerm<Self>) -> AliasTermKind; fn trait_ref_and_own_args_for_alias( self, def_id: Self::DefId, args: Self::GenericArgs, ) -> (TraitRef<Self>, Self::GenericArgsSlice); fn mk_args(self, args: &[Self::GenericArg]) -> Self::GenericArgs; fn mk_args_from_iter<I, T>( self, args: I, ) -> <T as CollectAndApply<Self::GenericArg, Self::GenericArgs>>::Output where I: Iterator<Item = T>, T: CollectAndApply<Self::GenericArg, Self::GenericArgs>; fn check_args_compatible( self, def_id: Self::DefId, args: Self::GenericArgs, ) -> bool; fn check_and_mk_args( self, def_id: Self::DefId, args: impl IntoIterator>, ) -> Self::GenericArgs where <impl IntoIterator as IntoIterator>::Item: Into<Self::GenericArg>; fn intern_canonical_goal_evaluation_step( self, step: CanonicalGoalEvaluationStep<Self>, ) -> Self::CanonicalGoalEvaluationStepRef; fn mk_type_list_from_iter<I, T>( self, args: I, ) -> <T as CollectAndApply<Self::Ty, Self::Tys>>::Output where I: Iterator<Item = T>, T: CollectAndApply<Self::Ty, Self::Tys>; fn parent(self, def_id: Self::DefId) -> Self::DefId; fn recursion_limit(self) -> usize; fn features(self) -> Self::Features; fn bound_coroutine_hidden_types( self, def_id: Self::DefId, ) -> impl IntoIterator<Item = EarlyBinder<Self, Binder<Self, Self::Ty>>>; fn fn_sig( self, def_id: Self::DefId, ) -> EarlyBinder<Self, Binder<Self, FnSig<Self>>>; fn coroutine_movability(self, def_id: Self::DefId) -> Movability; fn coroutine_for_closure(self, def_id: Self::DefId) -> Self::DefId; fn generics_require_sized_self(self, def_id: Self::DefId) -> bool; fn item_bounds( self, def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>; fn predicates_of( self, def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>; fn own_predicates_of( self, def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>; fn super_predicates_of( self, def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>; fn has_target_features(self, def_id: Self::DefId) -> bool; fn require_lang_item(self, lang_item: TraitSolverLangItem) -> Self::DefId; fn is_lang_item( self, def_id: Self::DefId, lang_item: TraitSolverLangItem, ) -> bool; fn associated_type_def_ids( self, def_id: Self::DefId, ) -> impl IntoIterator<Item = Self::DefId>; fn args_may_unify_deep( self, obligation_args: Self::GenericArgs, impl_args: Self::GenericArgs, ) -> bool; fn for_each_relevant_impl( self, trait_def_id: Self::DefId, self_ty: Self::Ty, f: impl FnMut(Self::DefId), ); fn has_item_definition(self, def_id: Self::DefId) -> bool; fn impl_is_default(self, impl_def_id: Self::DefId) -> bool; fn impl_trait_ref( self, impl_def_id: Self::DefId, ) -> EarlyBinder<Self, TraitRef<Self>>; fn impl_polarity(self, impl_def_id: Self::DefId) -> ImplPolarity; fn trait_is_auto(self, trait_def_id: Self::DefId) -> bool; fn trait_is_alias(self, trait_def_id: Self::DefId) -> bool; fn trait_is_object_safe(self, trait_def_id: Self::DefId) -> bool; fn trait_may_be_implemented_via_object( self, trait_def_id: Self::DefId, ) -> bool; fn fn_trait_kind_from_def_id( self, trait_def_id: Self::DefId, ) -> Option<ClosureKind>; fn async_fn_trait_kind_from_def_id( self, trait_def_id: Self::DefId, ) -> Option<ClosureKind>; fn supertrait_def_ids( self, trait_def_id: Self::DefId, ) -> impl IntoIterator<Item = Self::DefId>; fn delay_bug(self, msg: impl ToString) -> Self::ErrorGuaranteed; fn is_general_coroutine(self, coroutine_def_id: Self::DefId) -> bool; fn coroutine_is_async(self, coroutine_def_id: Self::DefId) -> bool; fn coroutine_is_gen(self, coroutine_def_id: Self::DefId) -> bool; fn coroutine_is_async_gen(self, coroutine_def_id: Self::DefId) -> bool; fn layout_is_pointer_like( self, param_env: Self::ParamEnv, ty: Self::Ty, ) -> bool; fn unsizing_params_for_adt( self, adt_def_id: Self::DefId, ) -> Self::UnsizingParams; fn find_const_ty_from_env( self, param_env: Self::ParamEnv, placeholder: Self::PlaceholderConst, ) -> Self::Ty;
}

Required Associated Types§

source

type DefId: DefId<Self>

source

type LocalDefId: Copy + Debug + Hash + Eq + Into<Self::DefId> + TypeFoldable<Self>

source

type GenericArgs: GenericArgs<Self>

source

type GenericArgsSlice: Copy + Debug + Hash + Eq + Deref<Target = [Self::GenericArg]>

source

type GenericArg: GenericArg<Self>

source

type Term: Term<Self>

source

type BoundVarKinds: Copy + Debug + Hash + Eq + Deref + Default where <Self::BoundVarKinds as Deref>::Target: Deref<Target = [Self::BoundVarKind]>

source

type BoundVarKind: Copy + Debug + Hash + Eq

source

type PredefinedOpaques: Copy + Debug + Hash + Eq + TypeFoldable<Self> + Deref<Target = PredefinedOpaquesData<Self>>

source

type DefiningOpaqueTypes: Copy + Debug + Hash + Default + Eq + TypeVisitable<Self> + Deref where <Self::DefiningOpaqueTypes as Deref>::Target: Deref<Target = [Self::LocalDefId]>

source

type CanonicalGoalEvaluationStepRef: Copy + Debug + Hash + Eq + Deref<Target = CanonicalGoalEvaluationStep<Self>>

source

type CanonicalVars: Copy + Debug + Hash + Eq + IntoIterator<Item = CanonicalVarInfo<Self>> + Deref + Default where <Self::CanonicalVars as Deref>::Target: Deref<Target = [CanonicalVarInfo<Self>]>

source

type ExternalConstraints: Copy + Debug + Hash + Eq + TypeFoldable<Self> + Deref<Target = ExternalConstraintsData<Self>>

source

type DepNodeIndex

source

type Ty: Ty<Self>

source

type Tys: Tys<Self>

source

type FnInputTys: Copy + Debug + Hash + Eq + Deref<Target = [Self::Ty]> + TypeVisitable<Self>

source

type ParamTy: Copy + Debug + Hash + Eq + ParamLike

source

type BoundTy: Copy + Debug + Hash + Eq + BoundVarLike<Self>

source

type PlaceholderTy: PlaceholderLike

source

type ErrorGuaranteed: Copy + Debug + Hash + Eq

source

type BoundExistentialPredicates: BoundExistentialPredicates<Self>

source

type AllocId: Copy + Debug + Hash + Eq

source

type Pat: Copy + Debug + Hash + Eq + Relate<Self>

source

type Safety: Safety<Self>

source

type Abi: Abi<Self>

source

type Const: Const<Self>

source

type PlaceholderConst: PlaceholderLike

source

type ParamConst: Copy + Debug + Hash + Eq + ParamLike

source

type BoundConst: Copy + Debug + Hash + Eq + BoundVarLike<Self>

source

type ValueConst: Copy + Debug + Hash + Eq

source

type ExprConst: Copy + Debug + Hash + Eq + Relate<Self>

source

type Region: Region<Self>

source

type EarlyParamRegion: Copy + Debug + Hash + Eq + ParamLike

source

type LateParamRegion: Copy + Debug + Hash + Eq

source

type BoundRegion: Copy + Debug + Hash + Eq + BoundVarLike<Self>

source

type PlaceholderRegion: PlaceholderLike

source

type ParamEnv: ParamEnv<Self>

source

type Predicate: Predicate<Self>

source

type Clause: Clause<Self>

source

type Clauses: Copy + Debug + Hash + Eq + TypeSuperVisitable<Self> + Flags

source

type EvaluationCache: EvaluationCache<Self>

source

type GenericsOf: GenericsOf<Self>

source

type VariancesOf: Copy + Debug + Deref<Target = [Variance]> + IntoIterator where <Self::VariancesOf as IntoIterator>::Item: Deref<Target = Variance>

source

type AdtDef: AdtDef<Self>

source

type Features: Features<Self>

source

type UnsizingParams: Deref<Target = BitSet<u32>>

Required Methods§

source

fn mk_predefined_opaques_in_body( self, data: PredefinedOpaquesData<Self>, ) -> Self::PredefinedOpaques

source

fn mk_canonical_var_infos( self, infos: &[CanonicalVarInfo<Self>], ) -> Self::CanonicalVars

source

fn mk_external_constraints( self, data: ExternalConstraintsData<Self>, ) -> Self::ExternalConstraints

source

fn with_cached_task<T>( self, task: impl FnOnce() -> T, ) -> (T, Self::DepNodeIndex)

source

fn evaluation_cache(self, mode: SolverMode) -> Self::EvaluationCache

source

fn expand_abstract_consts<T>(self, t: T) -> T
where T: TypeFoldable<Self>,

source

fn generics_of(self, def_id: Self::DefId) -> Self::GenericsOf

source

fn variances_of(self, def_id: Self::DefId) -> Self::VariancesOf

source

fn type_of(self, def_id: Self::DefId) -> EarlyBinder<Self, Self::Ty>

source

fn adt_def(self, adt_def_id: Self::DefId) -> Self::AdtDef

source

fn alias_ty_kind(self, alias: AliasTy<Self>) -> AliasTyKind

source

fn alias_term_kind(self, alias: AliasTerm<Self>) -> AliasTermKind

source

fn trait_ref_and_own_args_for_alias( self, def_id: Self::DefId, args: Self::GenericArgs, ) -> (TraitRef<Self>, Self::GenericArgsSlice)

source

fn mk_args(self, args: &[Self::GenericArg]) -> Self::GenericArgs

source

fn mk_args_from_iter<I, T>( self, args: I, ) -> <T as CollectAndApply<Self::GenericArg, Self::GenericArgs>>::Output
where I: Iterator<Item = T>, T: CollectAndApply<Self::GenericArg, Self::GenericArgs>,

source

fn check_args_compatible( self, def_id: Self::DefId, args: Self::GenericArgs, ) -> bool

source

fn check_and_mk_args( self, def_id: Self::DefId, args: impl IntoIterator>, ) -> Self::GenericArgs
where <impl IntoIterator as IntoIterator>::Item: Into<Self::GenericArg>,

source

fn intern_canonical_goal_evaluation_step( self, step: CanonicalGoalEvaluationStep<Self>, ) -> Self::CanonicalGoalEvaluationStepRef

source

fn mk_type_list_from_iter<I, T>( self, args: I, ) -> <T as CollectAndApply<Self::Ty, Self::Tys>>::Output
where I: Iterator<Item = T>, T: CollectAndApply<Self::Ty, Self::Tys>,

source

fn parent(self, def_id: Self::DefId) -> Self::DefId

source

fn recursion_limit(self) -> usize

source

fn features(self) -> Self::Features

source

fn bound_coroutine_hidden_types( self, def_id: Self::DefId, ) -> impl IntoIterator<Item = EarlyBinder<Self, Binder<Self, Self::Ty>>>

source

fn fn_sig( self, def_id: Self::DefId, ) -> EarlyBinder<Self, Binder<Self, FnSig<Self>>>

source

fn coroutine_movability(self, def_id: Self::DefId) -> Movability

source

fn coroutine_for_closure(self, def_id: Self::DefId) -> Self::DefId

source

fn generics_require_sized_self(self, def_id: Self::DefId) -> bool

source

fn item_bounds( self, def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>

source

fn predicates_of( self, def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>

source

fn own_predicates_of( self, def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>

source

fn super_predicates_of( self, def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>

source

fn has_target_features(self, def_id: Self::DefId) -> bool

source

fn require_lang_item(self, lang_item: TraitSolverLangItem) -> Self::DefId

source

fn is_lang_item( self, def_id: Self::DefId, lang_item: TraitSolverLangItem, ) -> bool

source

fn associated_type_def_ids( self, def_id: Self::DefId, ) -> impl IntoIterator<Item = Self::DefId>

source

fn args_may_unify_deep( self, obligation_args: Self::GenericArgs, impl_args: Self::GenericArgs, ) -> bool

source

fn for_each_relevant_impl( self, trait_def_id: Self::DefId, self_ty: Self::Ty, f: impl FnMut(Self::DefId), )

source

fn has_item_definition(self, def_id: Self::DefId) -> bool

source

fn impl_is_default(self, impl_def_id: Self::DefId) -> bool

source

fn impl_trait_ref( self, impl_def_id: Self::DefId, ) -> EarlyBinder<Self, TraitRef<Self>>

source

fn impl_polarity(self, impl_def_id: Self::DefId) -> ImplPolarity

source

fn trait_is_auto(self, trait_def_id: Self::DefId) -> bool

source

fn trait_is_alias(self, trait_def_id: Self::DefId) -> bool

source

fn trait_is_object_safe(self, trait_def_id: Self::DefId) -> bool

source

fn trait_may_be_implemented_via_object(self, trait_def_id: Self::DefId) -> bool

source

fn fn_trait_kind_from_def_id( self, trait_def_id: Self::DefId, ) -> Option<ClosureKind>

source

fn async_fn_trait_kind_from_def_id( self, trait_def_id: Self::DefId, ) -> Option<ClosureKind>

source

fn supertrait_def_ids( self, trait_def_id: Self::DefId, ) -> impl IntoIterator<Item = Self::DefId>

source

fn delay_bug(self, msg: impl ToString) -> Self::ErrorGuaranteed

source

fn is_general_coroutine(self, coroutine_def_id: Self::DefId) -> bool

source

fn coroutine_is_async(self, coroutine_def_id: Self::DefId) -> bool

source

fn coroutine_is_gen(self, coroutine_def_id: Self::DefId) -> bool

source

fn coroutine_is_async_gen(self, coroutine_def_id: Self::DefId) -> bool

source

fn layout_is_pointer_like(self, param_env: Self::ParamEnv, ty: Self::Ty) -> bool

source

fn unsizing_params_for_adt( self, adt_def_id: Self::DefId, ) -> Self::UnsizingParams

source

fn find_const_ty_from_env( self, param_env: Self::ParamEnv, placeholder: Self::PlaceholderConst, ) -> Self::Ty

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'tcx> Interner for TyCtxt<'tcx>

§

type DefId = DefId

§

type LocalDefId = LocalDefId

§

type GenericArgs = &'tcx RawList<(), GenericArg<'tcx>>

§

type GenericArgsSlice = &'tcx [GenericArg<'tcx>]

§

type GenericArg = GenericArg<'tcx>

§

type Term = Term<'tcx>

§

type BoundVarKinds = &'tcx RawList<(), BoundVariableKind>

§

type BoundVarKind = BoundVariableKind

§

type PredefinedOpaques = PredefinedOpaques<'tcx>

source§

fn mk_predefined_opaques_in_body( self, data: PredefinedOpaquesData<TyCtxt<'tcx>>, ) -> PredefinedOpaques<'tcx>

§

type DefiningOpaqueTypes = &'tcx RawList<(), LocalDefId>

§

type CanonicalGoalEvaluationStepRef = &'tcx CanonicalGoalEvaluationStep<TyCtxt<'tcx>>

§

type CanonicalVars = &'tcx RawList<(), CanonicalVarInfo<TyCtxt<'tcx>>>

source§

fn mk_canonical_var_infos( self, infos: &[CanonicalVarInfo<TyCtxt<'tcx>>], ) -> &'tcx RawList<(), CanonicalVarInfo<TyCtxt<'tcx>>>

§

type ExternalConstraints = ExternalConstraints<'tcx>

source§

fn mk_external_constraints( self, data: ExternalConstraintsData<TyCtxt<'tcx>>, ) -> ExternalConstraints<'tcx>

§

type DepNodeIndex = DepNodeIndex

source§

fn with_cached_task<T>(self, task: impl FnOnce() -> T) -> (T, DepNodeIndex)

§

type Ty = Ty<'tcx>

§

type Tys = &'tcx RawList<(), Ty<'tcx>>

§

type FnInputTys = &'tcx [Ty<'tcx>]

§

type ParamTy = ParamTy

§

type BoundTy = BoundTy

§

type PlaceholderTy = Placeholder<BoundTy>

§

type ErrorGuaranteed = ErrorGuaranteed

§

type BoundExistentialPredicates = &'tcx RawList<(), Binder<TyCtxt<'tcx>, ExistentialPredicate<TyCtxt<'tcx>>>>

§

type AllocId = AllocId

§

type Pat = Pattern<'tcx>

§

type Safety = Safety

§

type Abi = Abi

§

type Const = Const<'tcx>

§

type PlaceholderConst = Placeholder<BoundVar>

§

type ParamConst = ParamConst

§

type BoundConst = BoundVar

§

type ValueConst = ValTree<'tcx>

§

type ExprConst = Expr<'tcx>

§

type Region = Region<'tcx>

§

type EarlyParamRegion = EarlyParamRegion

§

type LateParamRegion = LateParamRegion

§

type BoundRegion = BoundRegion

§

type PlaceholderRegion = Placeholder<BoundRegion>

§

type ParamEnv = ParamEnv<'tcx>

§

type Predicate = Predicate<'tcx>

§

type Clause = Clause<'tcx>

§

type Clauses = &'tcx RawList<TypeInfo, Clause<'tcx>>

§

type EvaluationCache = &'tcx EvaluationCache<'tcx>

source§

fn evaluation_cache(self, mode: SolverMode) -> &'tcx EvaluationCache<'tcx>

source§

fn expand_abstract_consts<T>(self, t: T) -> T
where T: TypeFoldable<TyCtxt<'tcx>>,

§

type GenericsOf = &'tcx Generics

source§

fn generics_of(self, def_id: DefId) -> &'tcx Generics

§

type VariancesOf = &'tcx [Variance]

source§

fn variances_of(self, def_id: DefId) -> &'tcx [Variance]

source§

fn type_of(self, def_id: DefId) -> EarlyBinder<TyCtxt<'tcx>, Ty<'tcx>>

§

type AdtDef = AdtDef<'tcx>

source§

fn adt_def(self, adt_def_id: DefId) -> AdtDef<'tcx>

source§

fn alias_ty_kind(self, alias: AliasTy<TyCtxt<'tcx>>) -> AliasTyKind

source§

fn alias_term_kind(self, alias: AliasTerm<TyCtxt<'tcx>>) -> AliasTermKind

source§

fn trait_ref_and_own_args_for_alias( self, def_id: DefId, args: &'tcx RawList<(), GenericArg<'tcx>>, ) -> (TraitRef<TyCtxt<'tcx>>, &'tcx [GenericArg<'tcx>])

source§

fn mk_args( self, args: &[GenericArg<'tcx>], ) -> &'tcx RawList<(), GenericArg<'tcx>>

source§

fn mk_args_from_iter<I, T>( self, args: I, ) -> <T as CollectAndApply<GenericArg<'tcx>, &'tcx RawList<(), GenericArg<'tcx>>>>::Output
where I: Iterator<Item = T>, T: CollectAndApply<GenericArg<'tcx>, &'tcx RawList<(), GenericArg<'tcx>>>,

source§

fn check_args_compatible( self, def_id: DefId, args: &'tcx RawList<(), GenericArg<'tcx>>, ) -> bool

source§

fn check_and_mk_args( self, def_id: DefId, args: impl IntoIterator>>, ) -> &'tcx RawList<(), GenericArg<'tcx>>
where <impl IntoIterator as IntoIterator>::Item: Into<GenericArg<'tcx>>,

source§

fn intern_canonical_goal_evaluation_step( self, step: CanonicalGoalEvaluationStep<TyCtxt<'tcx>>, ) -> &'tcx CanonicalGoalEvaluationStep<TyCtxt<'tcx>>

source§

fn mk_type_list_from_iter<I, T>( self, args: I, ) -> <T as CollectAndApply<Ty<'tcx>, &'tcx RawList<(), Ty<'tcx>>>>::Output
where I: Iterator<Item = T>, T: CollectAndApply<Ty<'tcx>, &'tcx RawList<(), Ty<'tcx>>>,

source§

fn parent(self, def_id: DefId) -> DefId

source§

fn recursion_limit(self) -> usize

§

type Features = &'tcx Features

source§

fn features(self) -> &'tcx Features

source§

fn bound_coroutine_hidden_types( self, def_id: DefId, ) -> impl IntoIterator<Item = EarlyBinder<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, Ty<'tcx>>>>

source§

fn fn_sig( self, def_id: DefId, ) -> EarlyBinder<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, FnSig<TyCtxt<'tcx>>>>

source§

fn coroutine_movability(self, def_id: DefId) -> Movability

source§

fn coroutine_for_closure(self, def_id: DefId) -> DefId

source§

fn generics_require_sized_self(self, def_id: DefId) -> bool

source§

fn item_bounds( self, def_id: DefId, ) -> EarlyBinder<TyCtxt<'tcx>, impl IntoIterator<Item = Clause<'tcx>>>

source§

fn predicates_of( self, def_id: DefId, ) -> EarlyBinder<TyCtxt<'tcx>, impl IntoIterator<Item = Clause<'tcx>>>

source§

fn own_predicates_of( self, def_id: DefId, ) -> EarlyBinder<TyCtxt<'tcx>, impl IntoIterator<Item = Clause<'tcx>>>

source§

fn super_predicates_of( self, def_id: DefId, ) -> EarlyBinder<TyCtxt<'tcx>, impl IntoIterator<Item = Clause<'tcx>>>

source§

fn has_target_features(self, def_id: DefId) -> bool

source§

fn require_lang_item(self, lang_item: TraitSolverLangItem) -> DefId

source§

fn is_lang_item(self, def_id: DefId, lang_item: TraitSolverLangItem) -> bool

source§

fn associated_type_def_ids( self, def_id: DefId, ) -> impl IntoIterator<Item = DefId>

source§

fn args_may_unify_deep( self, obligation_args: &'tcx RawList<(), GenericArg<'tcx>>, impl_args: &'tcx RawList<(), GenericArg<'tcx>>, ) -> bool

source§

fn for_each_relevant_impl( self, trait_def_id: DefId, self_ty: Ty<'tcx>, f: impl FnMut(DefId), )

source§

fn has_item_definition(self, def_id: DefId) -> bool

source§

fn impl_is_default(self, impl_def_id: DefId) -> bool

source§

fn impl_trait_ref( self, impl_def_id: DefId, ) -> EarlyBinder<TyCtxt<'tcx>, TraitRef<TyCtxt<'tcx>>>

source§

fn impl_polarity(self, impl_def_id: DefId) -> ImplPolarity

source§

fn trait_is_auto(self, trait_def_id: DefId) -> bool

source§

fn trait_is_alias(self, trait_def_id: DefId) -> bool

source§

fn trait_is_object_safe(self, trait_def_id: DefId) -> bool

source§

fn trait_may_be_implemented_via_object(self, trait_def_id: DefId) -> bool

source§

fn fn_trait_kind_from_def_id(self, trait_def_id: DefId) -> Option<ClosureKind>

source§

fn async_fn_trait_kind_from_def_id( self, trait_def_id: DefId, ) -> Option<ClosureKind>

source§

fn supertrait_def_ids( self, trait_def_id: DefId, ) -> impl IntoIterator<Item = DefId>

source§

fn delay_bug(self, msg: impl ToString) -> ErrorGuaranteed

source§

fn is_general_coroutine(self, coroutine_def_id: DefId) -> bool

source§

fn coroutine_is_async(self, coroutine_def_id: DefId) -> bool

source§

fn coroutine_is_gen(self, coroutine_def_id: DefId) -> bool

source§

fn coroutine_is_async_gen(self, coroutine_def_id: DefId) -> bool

source§

fn layout_is_pointer_like(self, param_env: ParamEnv<'tcx>, ty: Ty<'tcx>) -> bool

§

type UnsizingParams = &'tcx BitSet<u32>

source§

fn unsizing_params_for_adt(self, adt_def_id: DefId) -> &'tcx BitSet<u32>

source§

fn find_const_ty_from_env( self, param_env: ParamEnv<'tcx>, placeholder: Placeholder<BoundVar>, ) -> Ty<'tcx>

Implementors§