pub struct DbInterner<'db> {
pub(crate) db: &'db dyn HirDatabase,
krate: Option<Crate>,
lang_items: Option<&'db LangItems>,
}Fields§
§db: &'db dyn HirDatabase§krate: Option<Crate>§lang_items: Option<&'db LangItems>Implementations§
Source§impl<'db> DbInterner<'db>
impl<'db> DbInterner<'db>
Sourcepub fn instantiate_bound_regions<T, F>(
self,
value: Binder<'db, T>,
fld_r: F,
) -> (T, FxIndexMap<BoundRegion<'db>, Region<'db>>)
pub fn instantiate_bound_regions<T, F>( self, value: Binder<'db, T>, fld_r: F, ) -> (T, FxIndexMap<BoundRegion<'db>, Region<'db>>)
Replaces all regions bound by the given Binder with the
results returned by the closure; the closure is expected to
return a free region (relative to this binder), and hence the
binder is removed in the return type. The closure is invoked
once for each unique BoundRegionKind; multiple references to the
same BoundRegionKind will reuse the previous result. A map is
returned at the end with each bound region and the free region
that replaced it.
§Panics
This method only replaces late bound regions. Any types or
constants bound by value will cause an ICE.
pub fn instantiate_bound_regions_uncached<T, F>( self, value: Binder<'db, T>, replace_regions: F, ) -> T
Sourcepub fn instantiate_bound_regions_with_erased<T>(
self,
value: Binder<'db, T>,
) -> Twhere
T: TypeFoldable<DbInterner<'db>>,
pub fn instantiate_bound_regions_with_erased<T>(
self,
value: Binder<'db, T>,
) -> Twhere
T: TypeFoldable<DbInterner<'db>>,
Replaces any late-bound regions bound in value with 'erased. Useful in codegen but also
method lookup and a few other places where precise region relationships are not required.
Sourcepub fn liberate_late_bound_regions<T>(
self,
all_outlive_scope: SolverDefId<'db>,
value: Binder<'db, T>,
) -> Twhere
T: TypeFoldable<DbInterner<'db>>,
pub fn liberate_late_bound_regions<T>(
self,
all_outlive_scope: SolverDefId<'db>,
value: Binder<'db, T>,
) -> Twhere
T: TypeFoldable<DbInterner<'db>>,
Replaces any late-bound regions bound in value with
free variants attached to all_outlive_scope.
Source§impl<'db> DbInterner<'db>
impl<'db> DbInterner<'db>
pub(super) fn mk_args(self, args: &[GenericArg<'db>]) -> GenericArgs<'db>
pub(super) fn mk_args_from_iter<I, T>(self, iter: I) -> T::Output
Source§impl<'db> DbInterner<'db>
impl<'db> DbInterner<'db>
Sourcepub fn new_no_crate(db: &'db dyn HirDatabase) -> Self
pub fn new_no_crate(db: &'db dyn HirDatabase) -> Self
Creates a new interner without an active crate. Good only for interning things, not for trait solving etc..
As a rule of thumb, when you create an InferCtxt, you need to provide the crate (and the block).
Elaboration is a special kind: it needs lang items (for Sized), therefore it needs new_with().
pub fn new_with(db: &'db dyn HirDatabase, krate: Crate) -> DbInterner<'db>
pub fn db(&self) -> &'db dyn HirDatabase
pub fn lang_items(&self) -> &'db LangItems
pub fn default_types(&self) -> &'db DefaultAny<'db>
pub(crate) fn expect_crate(&self) -> Crate
Source§impl<'db> DbInterner<'db>
impl<'db> DbInterner<'db>
pub fn shift_bound_var_indices<T>(self, bound_vars: usize, value: T) -> Twhere
T: TypeFoldable<Self>,
pub fn replace_escaping_bound_vars_uncached<T: TypeFoldable<DbInterner<'db>>>( self, value: T, delegate: impl BoundVarReplacerDelegate<'db>, ) -> T
pub fn replace_bound_vars_uncached<T: TypeFoldable<DbInterner<'db>>>( self, value: Binder<'db, T>, delegate: impl BoundVarReplacerDelegate<'db>, ) -> T
pub fn mk_fn_sig<I>(
self,
inputs: I,
output: Ty<'db>,
c_variadic: bool,
safety: Safety,
abi: ExternAbi,
) -> FnSig<'db>where
I: IntoIterator<Item = Ty<'db>>,
Sourcepub fn mk_fn_sig_safe_rust_abi<I>(
self,
inputs: I,
output: Ty<'db>,
) -> FnSig<'db>where
I: IntoIterator<Item = Ty<'db>>,
pub fn mk_fn_sig_safe_rust_abi<I>(
self,
inputs: I,
output: Ty<'db>,
) -> FnSig<'db>where
I: IntoIterator<Item = Ty<'db>>,
mk_fn_sig, but with a safe Rust ABI, and no C-variadic argument.
Source§impl<'db> DbInterner<'db>
impl<'db> DbInterner<'db>
Sourcepub fn signature_unclosure(
self,
sig: PolyFnSig<'db>,
safety: Safety,
) -> PolyFnSig<'db>
pub fn signature_unclosure( self, sig: PolyFnSig<'db>, safety: Safety, ) -> PolyFnSig<'db>
Given a closure signature, returns an equivalent fn signature. Detuples
and so forth – so e.g., if we have a sig with Fn<(u32, i32)> then
you would get a fn(u32, i32).
unsafety determines the unsafety of the fn signature. If you pass
Safety::Unsafe in the previous example, then you would get
an unsafe fn (u32, i32).
It cannot convert a closure that requires unsafe.
Trait Implementations§
Source§impl<'db> AdtDef<DbInterner<'db>> for AdtDef
impl<'db> AdtDef<DbInterner<'db>> for AdtDef
fn def_id(self) -> AdtIdWrapper
fn is_struct(self) -> bool
fn is_phantom_data(self) -> bool
fn is_manually_drop(self) -> bool
fn is_packed(self) -> bool
fn is_fundamental(self) -> bool
Source§fn struct_tail_ty(
self,
interner: DbInterner<'db>,
) -> Option<EarlyBinder<DbInterner<'db>, Ty<'db>>>
fn struct_tail_ty( self, interner: DbInterner<'db>, ) -> Option<EarlyBinder<DbInterner<'db>, Ty<'db>>>
fn all_field_tys( self, interner: DbInterner<'db>, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = Ty<'db>>>
fn sizedness_constraint( self, interner: DbInterner<'db>, sizedness: SizedTraitKind, ) -> Option<EarlyBinder<DbInterner<'db>, Ty<'db>>>
fn destructor(self, interner: DbInterner<'db>) -> Option<AdtDestructorKind>
fn field_representing_type_info( self, _interner: DbInterner<'db>, _args: GenericArgs<'db>, ) -> Option<FieldInfo<DbInterner<'db>>>
Source§impl<'db> BoundExistentialPredicates<DbInterner<'db>> for BoundExistentialPredicates<'db>
impl<'db> BoundExistentialPredicates<DbInterner<'db>> for BoundExistentialPredicates<'db>
fn principal_def_id(self) -> Option<TraitIdWrapper>
fn principal( self, ) -> Option<Binder<DbInterner<'db>, ExistentialTraitRef<DbInterner<'db>>>>
fn auto_traits(self) -> impl IntoIterator<Item = TraitIdWrapper>
fn projection_bounds( self, ) -> impl IntoIterator<Item = Binder<DbInterner<'db>, ExistentialProjection<DbInterner<'db>>>>
Source§impl<'db> Clause<DbInterner<'db>> for Clause<'db>
impl<'db> Clause<DbInterner<'db>> for Clause<'db>
fn as_predicate(self) -> <DbInterner<'db> as Interner>::Predicate
Source§fn instantiate_supertrait(
self,
cx: DbInterner<'db>,
trait_ref: Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>,
) -> Self
fn instantiate_supertrait( self, cx: DbInterner<'db>, trait_ref: Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>, ) -> Self
fn as_trait_clause(self) -> Option<Binder<I, TraitPredicate<I>>>
fn as_host_effect_clause(self) -> Option<Binder<I, HostEffectPredicate<I>>>
fn as_projection_clause(self) -> Option<Binder<I, ProjectionPredicate<I>>>
Source§impl<'db> Clone for DbInterner<'db>
impl<'db> Clone for DbInterner<'db>
Source§fn clone(&self) -> DbInterner<'db>
fn clone(&self) -> DbInterner<'db>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'db> Const<DbInterner<'db>> for Const<'db>
impl<'db> Const<DbInterner<'db>> for Const<'db>
fn new_infer(interner: DbInterner<'db>, var: InferConst) -> Self
fn new_var(interner: DbInterner<'db>, var: ConstVid) -> Self
fn new_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundConst<'db>, ) -> Self
fn new_anon_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundVar, ) -> Self
fn new_canonical_bound(interner: DbInterner<'db>, var: BoundVar) -> Self
fn new_placeholder( interner: DbInterner<'db>, param: PlaceholderConst<'db>, ) -> Self
fn new_unevaluated( interner: DbInterner<'db>, uv: UnevaluatedConst<DbInterner<'db>>, ) -> Self
fn new_expr(interner: DbInterner<'db>, expr: ExprConst) -> Self
fn new_error(interner: DbInterner<'db>, _guar: ErrorGuaranteed) -> Self
fn new_error_with_message(interner: I, msg: impl ToString) -> Self
fn is_ct_var(self) -> bool
fn is_ct_error(self) -> bool
Source§impl<'db> DbInternerInferExt<'db> for DbInterner<'db>
impl<'db> DbInternerInferExt<'db> for DbInterner<'db>
fn infer_ctxt(self) -> InferCtxtBuilder<'db>
Source§impl<'db> Debug for DbInterner<'db>
impl<'db> Debug for DbInterner<'db>
Source§impl<'db> DefId<DbInterner<'db>> for AnyImplId
impl<'db> DefId<DbInterner<'db>> for AnyImplId
Source§impl<'db> DefId<DbInterner<'db>> for CallableIdWrapper
impl<'db> DefId<DbInterner<'db>> for CallableIdWrapper
Source§impl<'db> DefId<DbInterner<'db>> for GeneralConstIdWrapper<'db>
impl<'db> DefId<DbInterner<'db>> for GeneralConstIdWrapper<'db>
Source§impl<'db> DefId<DbInterner<'db>> for SolverDefId<'db>
impl<'db> DefId<DbInterner<'db>> for SolverDefId<'db>
Source§impl<'db> DefId<DbInterner<'db>, OpaqueTyIdWrapper<'db>> for OpaqueTyIdWrapper<'db>
impl<'db> DefId<DbInterner<'db>, OpaqueTyIdWrapper<'db>> for OpaqueTyIdWrapper<'db>
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for AdtIdWrapper
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for AdtIdWrapper
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ClosureIdWrapper<'db>
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ClosureIdWrapper<'db>
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for CoroutineClosureIdWrapper<'db>
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for CoroutineClosureIdWrapper<'db>
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for CoroutineIdWrapper<'db>
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for CoroutineIdWrapper<'db>
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for FreeConstAliasId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for FreeConstAliasId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for FreeTermAliasId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for FreeTermAliasId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for FreeTyAliasId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for FreeTyAliasId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ImplOrTraitAssocConstId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ImplOrTraitAssocConstId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ImplOrTraitAssocTermId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ImplOrTraitAssocTermId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ImplOrTraitAssocTyId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ImplOrTraitAssocTyId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for InherentAssocConstId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for InherentAssocConstId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for InherentAssocTermId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for InherentAssocTermId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for InherentAssocTyId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for InherentAssocTyId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitAssocConstId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitAssocConstId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitAssocTermId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitAssocTermId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitAssocTyId
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitAssocTyId
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitIdWrapper
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitIdWrapper
Source§impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TypeAliasIdWrapper
impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TypeAliasIdWrapper
Source§impl<'db> Elaboratable<DbInterner<'db>> for Clause<'db>
impl<'db> Elaboratable<DbInterner<'db>> for Clause<'db>
fn predicate(&self) -> <DbInterner<'db> as Interner>::Predicate
fn child(&self, clause: <DbInterner<'db> as Interner>::Clause) -> Self
fn child_with_derived_cause( &self, clause: <DbInterner<'db> as Interner>::Clause, _span: <DbInterner<'db> as Interner>::Span, _parent_trait_pred: Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>, _index: usize, ) -> Self
Source§impl<'db> Elaboratable<DbInterner<'db>> for Obligation<'db, Predicate<'db>>
For Obligation, a sub-obligation is combined with the current obligation’s
param-env and cause code.
impl<'db> Elaboratable<DbInterner<'db>> for Obligation<'db, Predicate<'db>>
For Obligation, a sub-obligation is combined with the current obligation’s
param-env and cause code.
Source§impl<'db> Elaboratable<DbInterner<'db>> for Predicate<'db>
impl<'db> Elaboratable<DbInterner<'db>> for Predicate<'db>
fn predicate(&self) -> <DbInterner<'db> as Interner>::Predicate
fn child(&self, clause: <DbInterner<'db> as Interner>::Clause) -> Self
fn child_with_derived_cause( &self, clause: <DbInterner<'db> as Interner>::Clause, _span: <DbInterner<'db> as Interner>::Span, _parent_trait_pred: Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>, _index: usize, ) -> Self
Source§impl<'db> ExprConst<DbInterner<'db>> for ExprConst
impl<'db> ExprConst<DbInterner<'db>> for ExprConst
fn args(self) -> <DbInterner<'db> as Interner>::GenericArgs
Source§impl<'db> FallibleTypeFolder<DbInterner<'db>> for Filler<'db>
impl<'db> FallibleTypeFolder<DbInterner<'db>> for Filler<'db>
type Error = MirLowerError<'db>
fn cx(&self) -> DbInterner<'db>
fn try_fold_ty(&mut self, ty: Ty<'db>) -> Result<Ty<'db>, Self::Error>
fn try_fold_const(&mut self, ct: Const<'db>) -> Result<Const<'db>, Self::Error>
fn try_fold_region( &mut self, region: Region<'db>, ) -> Result<Region<'db>, Self::Error>
fn try_fold_binder<T>(
&mut self,
t: Binder<I, T>,
) -> Result<Binder<I, T>, Self::Error>where
T: TypeFoldable<I>,
fn try_fold_predicate( &mut self, p: <I as Interner>::Predicate, ) -> Result<<I as Interner>::Predicate, Self::Error>
fn try_fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> Result<<I as Interner>::Clauses, Self::Error>
Source§impl<'db> FallibleTypeFolder<DbInterner<'db>> for NormalizationFolder<'_, 'db>
impl<'db> FallibleTypeFolder<DbInterner<'db>> for NormalizationFolder<'_, 'db>
type Error = Vec<NextSolverError<'db>>
fn cx(&self) -> DbInterner<'db>
fn try_fold_binder<T: TypeFoldable<DbInterner<'db>>>( &mut self, t: Binder<'db, T>, ) -> Result<Binder<'db, T>, Self::Error>
fn try_fold_ty(&mut self, ty: Ty<'db>) -> Result<Ty<'db>, Self::Error>
fn try_fold_const(&mut self, ct: Const<'db>) -> Result<Const<'db>, Self::Error>
fn try_fold_region( &mut self, r: <I as Interner>::Region, ) -> Result<<I as Interner>::Region, Self::Error>
fn try_fold_predicate( &mut self, p: <I as Interner>::Predicate, ) -> Result<<I as Interner>::Predicate, Self::Error>
fn try_fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> Result<<I as Interner>::Clauses, Self::Error>
Source§impl<'db> Features<DbInterner<'db>> for Features
impl<'db> Features<DbInterner<'db>> for Features
fn generic_const_exprs(self) -> bool
fn coroutine_clone(self) -> bool
fn generic_const_args(self) -> bool
fn feature_bound_holds_in_crate(self, _symbol: Symbol) -> bool
Source§impl<'db> GenericArg<DbInterner<'db>> for GenericArg<'db>
impl<'db> GenericArg<DbInterner<'db>> for GenericArg<'db>
fn as_term(&self) -> Option<<I as Interner>::Term>
fn as_type(&self) -> Option<<I as Interner>::Ty>
fn expect_ty(&self) -> <I as Interner>::Ty
fn as_const(&self) -> Option<<I as Interner>::Const>
fn expect_const(&self) -> <I as Interner>::Const
fn as_region(&self) -> Option<<I as Interner>::Region>
fn expect_region(&self) -> <I as Interner>::Region
fn is_non_region_infer(self) -> bool
Source§impl<'db> GenericArgs<DbInterner<'db>> for GenericArgs<'db>
impl<'db> GenericArgs<DbInterner<'db>> for GenericArgs<'db>
fn as_closure(self) -> ClosureArgs<DbInterner<'db>>
fn as_coroutine(self) -> CoroutineArgs<DbInterner<'db>>
fn as_coroutine_closure(self) -> CoroutineClosureArgs<DbInterner<'db>>
fn rebase_onto( self, interner: DbInterner<'db>, source_def_id: <DbInterner<'db> as Interner>::DefId, target: <DbInterner<'db> as Interner>::GenericArgs, ) -> <DbInterner<'db> as Interner>::GenericArgs
fn identity_for_item( interner: DbInterner<'db>, def_id: <DbInterner<'db> as Interner>::DefId, ) -> <DbInterner<'db> as Interner>::GenericArgs
fn extend_with_error( interner: DbInterner<'db>, def_id: <DbInterner<'db> as Interner>::DefId, original_args: &[<DbInterner<'db> as Interner>::GenericArg], ) -> <DbInterner<'db> as Interner>::GenericArgs
fn type_at(self, i: usize) -> <DbInterner<'db> as Interner>::Ty
fn region_at(self, i: usize) -> <DbInterner<'db> as Interner>::Region
fn const_at(self, i: usize) -> <DbInterner<'db> as Interner>::Const
fn split_closure_args(self) -> ClosureArgsParts<DbInterner<'db>>
fn split_coroutine_closure_args( self, ) -> CoroutineClosureArgsParts<DbInterner<'db>>
fn split_coroutine_args(self) -> CoroutineArgsParts<DbInterner<'db>>
Source§impl<'db> HasDataLayout for DbInterner<'db>
impl<'db> HasDataLayout for DbInterner<'db>
fn data_layout(&self) -> &TargetDataLayout
Source§impl<'db> Interner for DbInterner<'db>
impl<'db> Interner for DbInterner<'db>
type DefId = SolverDefId<'db>
type LocalDefId = SolverDefId<'db>
type LocalDefIds = SolverDefIds<'db>
type TraitId = TraitIdWrapper
type ForeignId = TypeAliasIdWrapper
type FunctionId = CallableIdWrapper
type ClosureId = ClosureIdWrapper<'db>
type CoroutineClosureId = CoroutineClosureIdWrapper<'db>
type CoroutineId = CoroutineIdWrapper<'db>
type AdtId = AdtIdWrapper
type ImplId = AnyImplId
type UnevaluatedConstId = GeneralConstIdWrapper<'db>
type TraitAssocTyId = TraitAssocTyId
type TraitAssocConstId = TraitAssocConstId
type TraitAssocTermId = TraitAssocTermId
type OpaqueTyId = OpaqueTyIdWrapper<'db>
type LocalOpaqueTyId = OpaqueTyIdWrapper<'db>
type FreeTyAliasId = FreeTyAliasId
type FreeConstAliasId = FreeConstAliasId
type FreeTermAliasId = FreeTermAliasId
type ImplOrTraitAssocTyId = ImplOrTraitAssocTyId
type ImplOrTraitAssocConstId = ImplOrTraitAssocConstId
type ImplOrTraitAssocTermId = ImplOrTraitAssocTermId
type InherentAssocTyId = InherentAssocTyId
type InherentAssocConstId = InherentAssocConstId
type InherentAssocTermId = InherentAssocTermId
type Span = Span
type GenericArgs = GenericArgs<'db>
type GenericArgsSlice = &'db [GenericArg<'db>]
type GenericArg = GenericArg<'db>
type Term = Term<'db>
type BoundVarKinds = BoundVarKinds<'db>
type PredefinedOpaques = PredefinedOpaques<'db>
type CanonicalVarKinds = CanonicalVarKinds<'db>
type ExternalConstraints = ExternalConstraints<'db>
type DepNodeIndex = DepNodeIndex
type Tracked<T: Debug + Clone> = Tracked<T>
type Ty = Ty<'db>
type Tys = Tys<'db>
type FnInputTys = &'db [Ty<'db>]
type ParamTy = ParamTy
type Symbol = Symbol
type ErrorGuaranteed = ErrorGuaranteed
type BoundExistentialPredicates = BoundExistentialPredicates<'db>
type AllocId = AllocId
type Pat = Pattern<'db>
type PatList = PatList<'db>
type Safety = Safety
type Const = Const<'db>
type ParamConst = ParamConst
type ValueConst = ValueConst<'db>
type ValTree = ValTree<'db>
type Consts = Consts<'db>
type ScalarInt = ScalarInt
type ExprConst = ExprConst
type Region = Region<'db>
type EarlyParamRegion = EarlyParamRegion
type LateParamRegion = LateParamRegion<'db>
type RegionAssumptions = RegionAssumptions<'db>
type ParamEnv = ParamEnv<'db>
type Predicate = Predicate<'db>
type Clause = Clause<'db>
type Clauses = Clauses<'db>
type GenericsOf = Generics<'db>
type VariancesOf = VariancesOf<'db>
type AdtDef = AdtDef
type Features = Features
type UnsizingParams = UnsizingParams
type Probe = Probe<DbInterner<'db>>
fn mk_predefined_opaques_in_body( self, data: &[(OpaqueTypeKey<'db>, Self::Ty)], ) -> Self::PredefinedOpaques
fn mk_canonical_var_kinds( self, kinds: &[CanonicalVarKind<Self>], ) -> Self::CanonicalVarKinds
fn mk_external_constraints( self, data: ExternalConstraintsData<Self>, ) -> Self::ExternalConstraints
fn mk_args(self, args: &[Self::GenericArg]) -> Self::GenericArgs
fn mk_args_from_iter<I, T>(self, args: I) -> T::Outputwhere
I: Iterator<Item = T>,
T: CollectAndApply<Self::GenericArg, Self::GenericArgs>,
fn mk_tracked<T: Debug + Clone>( self, data: T, _dep_node: Self::DepNodeIndex, ) -> Self::Tracked<T>
fn get_tracked<T: Debug + Clone>(self, tracked: &Self::Tracked<T>) -> T
fn with_cached_task<T>( self, task: impl FnOnce() -> T, ) -> (T, Self::DepNodeIndex)
fn with_global_cache<R>(self, f: impl FnOnce(&mut GlobalCache<Self>) -> R) -> R
fn canonical_param_env_cache_get_or_insert<R>( self, _param_env: Self::ParamEnv, f: impl FnOnce() -> CanonicalParamEnvCacheEntry<Self>, from_entry: impl FnOnce(&CanonicalParamEnvCacheEntry<Self>) -> R, ) -> R
Source§fn assert_evaluation_is_concurrent(&self)
fn assert_evaluation_is_concurrent(&self)
fn expand_abstract_consts<T: TypeFoldable<Self>>(self, _: T) -> T
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, def_id: Self::AdtId) -> Self::AdtDef
fn alias_term_kind_from_def_id( self, def_id: SolverDefId<'db>, ) -> AliasTermKind<'db>
fn trait_ref_and_own_args_for_alias( self, def_id: Self::TraitAssocTermId, args: Self::GenericArgs, ) -> (TraitRef<Self>, Self::GenericArgsSlice)
fn check_args_compatible( self, _def_id: Self::DefId, _args: Self::GenericArgs, ) -> bool
fn debug_assert_args_compatible( self, _def_id: Self::DefId, _args: Self::GenericArgs, )
Source§fn debug_assert_existential_args_compatible(
self,
_def_id: Self::DefId,
_args: Self::GenericArgs,
)
fn debug_assert_existential_args_compatible( self, _def_id: Self::DefId, _args: Self::GenericArgs, )
ExistentialTraitRef or ExistentialProjection
are compatible with the DefId.fn mk_type_list_from_iter<I, T>(self, args: I) -> T::Outputwhere
I: Iterator<Item = T>,
T: CollectAndApply<Self::Ty, Self::Tys>,
fn projection_parent(self, def_id: Self::TraitAssocTermId) -> Self::TraitId
Source§fn impl_or_trait_assoc_term_parent(
self,
def_id: Self::ImplOrTraitAssocTermId,
) -> Self::DefId
fn impl_or_trait_assoc_term_parent( self, def_id: Self::ImplOrTraitAssocTermId, ) -> Self::DefId
fn inherent_alias_term_parent( self, def_id: Self::InherentAssocTermId, ) -> Self::ImplId
fn recursion_limit(self) -> usize
fn is_type_const(self, _def_id: Self::DefId) -> bool
fn features(self) -> Features
fn fn_sig( self, def_id: Self::FunctionId, ) -> EarlyBinder<Self, Binder<Self, FnSig<Self>>>
fn coroutine_movability(self, def_id: Self::CoroutineId) -> Movability
fn coroutine_for_closure( self, def_id: Self::CoroutineClosureId, ) -> Self::CoroutineId
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 item_self_bounds( self, def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>
fn item_non_self_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 explicit_super_predicates_of( self, def_id: Self::TraitId, ) -> EarlyBinder<Self, impl IntoIterator<Item = (Self::Clause, Self::Span)>>
fn explicit_implied_predicates_of( self, def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = (Self::Clause, Self::Span)>>
Source§fn impl_super_outlives(
self,
impl_id: Self::ImplId,
) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>
fn impl_super_outlives( self, impl_id: Self::ImplId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>
fn const_conditions( self, _def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Binder<Self, TraitRef<Self>>>>
fn has_target_features(self, _def_id: Self::FunctionId) -> bool
fn require_projection_lang_item( self, lang_item: SolverProjectionLangItem, ) -> Self::TraitAssocTyId
fn require_trait_lang_item( self, lang_item: SolverTraitLangItem, ) -> TraitIdWrapper
fn require_adt_lang_item(self, lang_item: SolverAdtLangItem) -> AdtIdWrapper
fn is_projection_lang_item( self, def_id: Self::TraitAssocTyId, lang_item: SolverProjectionLangItem, ) -> bool
fn is_trait_lang_item( self, def_id: Self::TraitId, lang_item: SolverTraitLangItem, ) -> bool
fn is_adt_lang_item( self, def_id: Self::AdtId, lang_item: SolverAdtLangItem, ) -> bool
fn as_projection_lang_item( self, def_id: Self::TraitAssocTyId, ) -> Option<SolverProjectionLangItem>
fn as_trait_lang_item( self, def_id: Self::TraitId, ) -> Option<SolverTraitLangItem>
fn as_adt_lang_item(self, def_id: Self::AdtId) -> Option<SolverAdtLangItem>
fn associated_type_def_ids( self, def_id: Self::TraitId, ) -> impl IntoIterator<Item = Self::DefId>
fn for_each_relevant_impl( self, trait_def_id: Self::TraitId, self_ty: Self::Ty, f: impl FnMut(Self::ImplId), )
fn for_each_blanket_impl( self, trait_def_id: Self::TraitId, f: impl FnMut(Self::ImplId), )
fn has_item_definition(self, _def_id: Self::ImplOrTraitAssocTermId) -> bool
fn impl_is_default(self, impl_def_id: Self::ImplId) -> bool
fn impl_trait_ref( self, impl_id: Self::ImplId, ) -> EarlyBinder<Self, TraitRef<Self>>
fn impl_polarity(self, impl_id: Self::ImplId) -> ImplPolarity
fn trait_is_auto(self, trait_: Self::TraitId) -> bool
fn trait_is_alias(self, trait_: Self::TraitId) -> bool
fn trait_is_dyn_compatible(self, trait_: Self::TraitId) -> bool
fn trait_is_fundamental(self, trait_: Self::TraitId) -> bool
fn is_impl_trait_in_trait(self, _def_id: Self::DefId) -> bool
fn delay_bug(self, msg: impl ToString) -> Self::ErrorGuaranteed
fn is_general_coroutine(self, def_id: Self::CoroutineId) -> bool
fn coroutine_is_async(self, def_id: Self::CoroutineId) -> bool
fn coroutine_is_gen(self, def_id: Self::CoroutineId) -> bool
fn coroutine_is_async_gen(self, def_id: Self::CoroutineId) -> bool
fn unsizing_params_for_adt(self, id: Self::AdtId) -> Self::UnsizingParams
fn anonymize_bound_vars<T: TypeFoldable<Self>>( self, value: Binder<Self, T>, ) -> Binder<Self, T>
fn opaque_types_defined_by(self, def_id: Self::LocalDefId) -> Self::LocalDefIds
fn opaque_types_and_coroutines_defined_by( self, def_id: Self::LocalDefId, ) -> Self::LocalDefIds
fn alias_has_const_conditions(self, _def_id: Self::DefId) -> bool
fn explicit_implied_const_bounds( self, _def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Binder<Self, TraitRef<Self>>>>
fn fn_is_const(self, id: Self::FunctionId) -> bool
fn impl_is_const(self, _def_id: Self::ImplId) -> bool
fn opt_alias_variances( self, _kind: impl Into<AliasTermKind<'db>>, ) -> Option<Self::VariancesOf>
fn type_of_opaque_hir_typeck( self, opaque: Self::LocalOpaqueTyId, ) -> EarlyBinder<Self, Self::Ty>
fn is_default_trait(self, def_id: Self::TraitId) -> bool
fn trait_is_coinductive(self, trait_: Self::TraitId) -> bool
Source§fn trait_is_unsafe(self, trait_: Self::TraitId) -> bool
fn trait_is_unsafe(self, trait_: Self::TraitId) -> bool
true if this is an unsafe trait.fn impl_self_is_guaranteed_unsized(self, _def_id: Self::ImplId) -> bool
fn impl_specializes( self, specializing_impl_def_id: Self::ImplId, parent_impl_def_id: Self::ImplId, ) -> bool
fn next_trait_solver_globally(self) -> bool
fn mk_probe(self, probe: Probe<Self>) -> Self::Probe
fn evaluate_root_goal_for_proof_tree_raw( self, canonical_goal: CanonicalInput<Self>, ) -> (QueryResult<Self>, Self::Probe)
fn is_sizedness_trait(self, def_id: Self::TraitId) -> bool
fn const_of_item(self, def_id: Self::DefId) -> EarlyBinder<Self, Self::Const>
fn anon_const_kind(self, _def_id: Self::DefId) -> AnonConstKind
fn alias_ty_kind_from_def_id(self, def_id: Self::DefId) -> AliasTyKind<'db>
fn closure_is_const(self, _def_id: Self::ClosureId) -> bool
fn item_name(self, _item_index: Self::DefId) -> Self::Symbol
Source§impl<'db> IrPrint<AliasTerm<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<AliasTerm<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> IrPrint<AliasTy<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<AliasTy<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> IrPrint<CoercePredicate<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<CoercePredicate<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> IrPrint<ExistentialProjection<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<ExistentialProjection<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> IrPrint<ExistentialTraitRef<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<ExistentialTraitRef<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> IrPrint<FnSig<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<FnSig<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> IrPrint<HostEffectPredicate<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<HostEffectPredicate<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> IrPrint<NormalizesTo<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<NormalizesTo<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> IrPrint<PatternKind<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<PatternKind<DbInterner<'db>>> for DbInterner<'db>
fn print(t: &PatternKind<DbInterner<'db>>, fmt: &mut Formatter<'_>) -> Result
fn print_debug( t: &PatternKind<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result
Source§impl<'db> IrPrint<ProjectionPredicate<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<ProjectionPredicate<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> IrPrint<SubtypePredicate<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<SubtypePredicate<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> IrPrint<TraitPredicate<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<TraitPredicate<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> IrPrint<TraitRef<DbInterner<'db>>> for DbInterner<'db>
impl<'db> IrPrint<TraitRef<DbInterner<'db>>> for DbInterner<'db>
Source§impl<'db> ParamEnv<DbInterner<'db>> for ParamEnv<'db>
impl<'db> ParamEnv<DbInterner<'db>> for ParamEnv<'db>
fn caller_bounds(self) -> impl SliceLike<Item = Clause<'db>>
Source§impl<'db> Predicate<DbInterner<'db>> for Predicate<'db>
impl<'db> Predicate<DbInterner<'db>> for Predicate<'db>
fn as_clause(self) -> Option<<DbInterner<'db> as Interner>::Clause>
fn as_normalizes_to(self) -> Option<Binder<I, NormalizesTo<I>>>
fn allow_normalization(self) -> bool
Source§impl<'db> Region<DbInterner<'db>> for Region<'db>
impl<'db> Region<DbInterner<'db>> for Region<'db>
fn new_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundRegion<'db>, ) -> Self
fn new_anon_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundVar, ) -> Self
fn new_canonical_bound(interner: DbInterner<'db>, var: BoundVar) -> Self
fn new_static(interner: DbInterner<'db>) -> Self
fn new_placeholder( interner: DbInterner<'db>, var: PlaceholderRegion<'db>, ) -> Self
fn is_bound(self) -> bool
Source§impl<'db> Relate<DbInterner<'db>> for BoundExistentialPredicates<'db>
impl<'db> Relate<DbInterner<'db>> for BoundExistentialPredicates<'db>
fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>
Source§impl<'db> Relate<DbInterner<'db>> for Const<'db>
impl<'db> Relate<DbInterner<'db>> for Const<'db>
fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>
Source§impl<'db> Relate<DbInterner<'db>> for ExprConst
impl<'db> Relate<DbInterner<'db>> for ExprConst
fn relate<R: TypeRelation<DbInterner<'db>>>( _relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>
Source§impl<'db> Relate<DbInterner<'db>> for ExternAbi
impl<'db> Relate<DbInterner<'db>> for ExternAbi
fn relate<R: TypeRelation<DbInterner<'db>>>( _relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>
Source§impl<'db> Relate<DbInterner<'db>> for GenericArg<'db>
impl<'db> Relate<DbInterner<'db>> for GenericArg<'db>
fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>
Source§impl<'db> Relate<DbInterner<'db>> for GenericArgs<'db>
impl<'db> Relate<DbInterner<'db>> for GenericArgs<'db>
fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>
Source§impl<'db> Relate<DbInterner<'db>> for Pattern<'db>
impl<'db> Relate<DbInterner<'db>> for Pattern<'db>
fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>
Source§impl<'db> Relate<DbInterner<'db>> for Region<'db>
impl<'db> Relate<DbInterner<'db>> for Region<'db>
fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>
Source§impl<'db> Relate<DbInterner<'db>> for Safety
impl<'db> Relate<DbInterner<'db>> for Safety
fn relate<R: TypeRelation<DbInterner<'db>>>( _relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>
Source§impl<'db> Relate<DbInterner<'db>> for Term<'db>
impl<'db> Relate<DbInterner<'db>> for Term<'db>
fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>
Source§impl<'db> Relate<DbInterner<'db>> for Ty<'db>
impl<'db> Relate<DbInterner<'db>> for Ty<'db>
fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>
Source§impl<'db> Safety<DbInterner<'db>> for Safety
impl<'db> Safety<DbInterner<'db>> for Safety
Source§impl<'db> Symbol<DbInterner<'db>> for Symbol
impl<'db> Symbol<DbInterner<'db>> for Symbol
fn is_kw_underscore_lifetime(self) -> bool
Source§impl<'db> Term<DbInterner<'db>> for Term<'db>
impl<'db> Term<DbInterner<'db>> for Term<'db>
fn as_type(&self) -> Option<<I as Interner>::Ty>
fn expect_ty(&self) -> <I as Interner>::Ty
fn as_const(&self) -> Option<<I as Interner>::Const>
fn expect_const(&self) -> <I as Interner>::Const
fn is_infer(self) -> bool
fn is_error(self) -> bool
fn to_alias_term(self, interner: I) -> Option<AliasTerm<I>>
Source§impl<'db> Ty<DbInterner<'db>> for Ty<'db>
impl<'db> Ty<DbInterner<'db>> for Ty<'db>
fn new_unit(interner: DbInterner<'db>) -> Self
fn new_bool(interner: DbInterner<'db>) -> Self
fn new_u8(interner: DbInterner<'db>) -> Self
fn new_usize(interner: DbInterner<'db>) -> Self
fn new_infer(interner: DbInterner<'db>, var: InferTy) -> Self
fn new_var(interner: DbInterner<'db>, var: TyVid) -> Self
fn new_param(interner: DbInterner<'db>, param: ParamTy) -> Self
fn new_placeholder( interner: DbInterner<'db>, param: PlaceholderType<'db>, ) -> Self
fn new_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundTy<'db>, ) -> Self
fn new_anon_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundVar, ) -> Self
fn new_canonical_bound(interner: DbInterner<'db>, var: BoundVar) -> Self
fn new_alias(interner: DbInterner<'db>, alias_ty: AliasTy<'db>) -> Self
fn new_error(interner: DbInterner<'db>, guar: ErrorGuaranteed) -> Self
fn new_adt( interner: DbInterner<'db>, adt_def: <DbInterner<'db> as Interner>::AdtDef, args: GenericArgs<'db>, ) -> Self
fn new_foreign(interner: DbInterner<'db>, def_id: TypeAliasIdWrapper) -> Self
fn new_dynamic( interner: DbInterner<'db>, preds: <DbInterner<'db> as Interner>::BoundExistentialPredicates, region: <DbInterner<'db> as Interner>::Region, ) -> Self
fn new_coroutine( interner: DbInterner<'db>, def_id: CoroutineIdWrapper<'db>, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Self
fn new_coroutine_closure( interner: DbInterner<'db>, def_id: CoroutineClosureIdWrapper<'db>, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Self
fn new_closure( interner: DbInterner<'db>, def_id: ClosureIdWrapper<'db>, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Self
fn new_coroutine_witness( interner: DbInterner<'db>, def_id: CoroutineIdWrapper<'db>, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Self
fn new_coroutine_witness_for_coroutine( interner: DbInterner<'db>, def_id: CoroutineIdWrapper<'db>, coroutine_args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Self
fn new_ptr(interner: DbInterner<'db>, ty: Self, mutbl: Mutability) -> Self
fn new_ref( interner: DbInterner<'db>, region: <DbInterner<'db> as Interner>::Region, ty: Self, mutbl: Mutability, ) -> Self
fn new_array_with_const_len( interner: DbInterner<'db>, ty: Self, len: <DbInterner<'db> as Interner>::Const, ) -> Self
fn new_slice(interner: DbInterner<'db>, ty: Self) -> Self
fn new_tup( interner: DbInterner<'db>, tys: &[<DbInterner<'db> as Interner>::Ty], ) -> Self
fn new_tup_from_iter<It, T>(interner: DbInterner<'db>, iter: It) -> T::Outputwhere
It: Iterator<Item = T>,
T: CollectAndApply<Self, Self>,
fn new_fn_def( interner: DbInterner<'db>, def_id: CallableIdWrapper, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Self
fn new_fn_ptr( interner: DbInterner<'db>, sig: Binder<DbInterner<'db>, FnSig<DbInterner<'db>>>, ) -> Self
fn new_pat( interner: DbInterner<'db>, ty: Self, pat: <DbInterner<'db> as Interner>::Pat, ) -> Self
fn new_unsafe_binder( interner: DbInterner<'db>, ty: Binder<DbInterner<'db>, <DbInterner<'db> as Interner>::Ty>, ) -> Self
fn tuple_fields(self) -> <DbInterner<'db> as Interner>::Tys
fn to_opt_closure_kind(self) -> Option<ClosureKind>
fn from_closure_kind(interner: DbInterner<'db>, kind: ClosureKind) -> Self
fn from_coroutine_closure_kind( interner: DbInterner<'db>, kind: ClosureKind, ) -> Self
Source§fn has_unsafe_fields(self) -> bool
fn has_unsafe_fields(self) -> bool
fn discriminant_ty(self, interner: DbInterner<'db>) -> Ty<'db>
fn new_projection_from_args( interner: I, def_id: <I as Interner>::TraitAssocTyId, args: <I as Interner>::GenericArgs, ) -> Self
fn new_projection(
interner: I,
def_id: <I as Interner>::TraitAssocTyId,
args: impl IntoIterator- >,
) -> Self
fn is_ty_var(self) -> bool
fn is_ty_error(self) -> bool
fn is_floating_point(self) -> bool
fn is_integral(self) -> bool
fn is_fn_ptr(self) -> bool
fn fn_sig(self, interner: I) -> Binder<I, FnSig<I>>
fn is_known_rigid(self) -> bool
fn is_guaranteed_unsized_raw(self) -> bool
Source§impl<'db> TypeFoldable<DbInterner<'db>> for AdtDef
impl<'db> TypeFoldable<DbInterner<'db>> for AdtDef
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for AdtIdWrapper
impl<'db> TypeFoldable<DbInterner<'db>> for AdtIdWrapper
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for AnyImplId
impl<'db> TypeFoldable<DbInterner<'db>> for AnyImplId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for BoundExistentialPredicates<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for BoundExistentialPredicates<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for CallableIdWrapper
impl<'db> TypeFoldable<DbInterner<'db>> for CallableIdWrapper
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Clause<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for Clause<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Clauses<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for Clauses<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ClosureIdWrapper<'_>
impl<'db> TypeFoldable<DbInterner<'db>> for ClosureIdWrapper<'_>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Const<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for Const<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Consts<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for Consts<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for CoroutineClosureIdWrapper<'_>
impl<'db> TypeFoldable<DbInterner<'db>> for CoroutineClosureIdWrapper<'_>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for CoroutineIdWrapper<'_>
impl<'db> TypeFoldable<DbInterner<'db>> for CoroutineIdWrapper<'_>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for EarlyParamRegion
impl<'db> TypeFoldable<DbInterner<'db>> for EarlyParamRegion
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ErrorGuaranteed
impl<'db> TypeFoldable<DbInterner<'db>> for ErrorGuaranteed
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ExprConst
impl<'db> TypeFoldable<DbInterner<'db>> for ExprConst
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ExternAbi
impl<'db> TypeFoldable<DbInterner<'db>> for ExternAbi
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ExternalConstraints<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for ExternalConstraints<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for FreeConstAliasId
impl<'db> TypeFoldable<DbInterner<'db>> for FreeConstAliasId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for FreeTermAliasId
impl<'db> TypeFoldable<DbInterner<'db>> for FreeTermAliasId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for FreeTyAliasId
impl<'db> TypeFoldable<DbInterner<'db>> for FreeTyAliasId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for GeneralConstIdWrapper<'_>
impl<'db> TypeFoldable<DbInterner<'db>> for GeneralConstIdWrapper<'_>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for GenericArg<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for GenericArg<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for GenericArgs<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for GenericArgs<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ImplOrTraitAssocConstId
impl<'db> TypeFoldable<DbInterner<'db>> for ImplOrTraitAssocConstId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ImplOrTraitAssocTermId
impl<'db> TypeFoldable<DbInterner<'db>> for ImplOrTraitAssocTermId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ImplOrTraitAssocTyId
impl<'db> TypeFoldable<DbInterner<'db>> for ImplOrTraitAssocTyId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db, N> TypeFoldable<DbInterner<'db>> for ImplSource<'db, N>where
N: TypeFoldable<DbInterner<'db>>,
impl<'db, N> TypeFoldable<DbInterner<'db>> for ImplSource<'db, N>where
N: TypeFoldable<DbInterner<'db>>,
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db, N> TypeFoldable<DbInterner<'db>> for ImplSourceUserDefinedData<'db, N>where
N: TypeFoldable<DbInterner<'db>>,
impl<'db, N> TypeFoldable<DbInterner<'db>> for ImplSourceUserDefinedData<'db, N>where
N: TypeFoldable<DbInterner<'db>>,
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for InferenceDiagnostic
impl<'db> TypeFoldable<DbInterner<'db>> for InferenceDiagnostic
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for InherentAssocConstId
impl<'db> TypeFoldable<DbInterner<'db>> for InherentAssocConstId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for InherentAssocTermId
impl<'db> TypeFoldable<DbInterner<'db>> for InherentAssocTermId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for InherentAssocTyId
impl<'db> TypeFoldable<DbInterner<'db>> for InherentAssocTyId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db, T> TypeFoldable<DbInterner<'db>> for Obligation<'db, T>where
T: TypeFoldable<DbInterner<'db>>,
impl<'db, T> TypeFoldable<DbInterner<'db>> for Obligation<'db, T>where
T: TypeFoldable<DbInterner<'db>>,
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ObligationCause
impl<'db> TypeFoldable<DbInterner<'db>> for ObligationCause
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for OpaqueHiddenType<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for OpaqueHiddenType<'db>
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for OpaqueTyIdWrapper<'_>
impl<'db> TypeFoldable<DbInterner<'db>> for OpaqueTyIdWrapper<'_>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ParamConst
impl<'db> TypeFoldable<DbInterner<'db>> for ParamConst
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ParamEnv<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for ParamEnv<'db>
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ParamTy
impl<'db> TypeFoldable<DbInterner<'db>> for ParamTy
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for PatList<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for PatList<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Pattern<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for Pattern<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Place
impl<'db> TypeFoldable<DbInterner<'db>> for Place
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for PlaceTy<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for PlaceTy<'db>
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for PredefinedOpaques<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for PredefinedOpaques<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Predicate<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for Predicate<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Projection
impl<'db> TypeFoldable<DbInterner<'db>> for Projection
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for QueryRegionConstraints<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for QueryRegionConstraints<'db>
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db, R> TypeFoldable<DbInterner<'db>> for QueryResponse<'db, R>where
R: TypeFoldable<DbInterner<'db>>,
impl<'db, R> TypeFoldable<DbInterner<'db>> for QueryResponse<'db, R>where
R: TypeFoldable<DbInterner<'db>>,
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Region<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for Region<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for RegionAssumptions<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for RegionAssumptions<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Safety
impl<'db> TypeFoldable<DbInterner<'db>> for Safety
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ScalarInt
impl<'db> TypeFoldable<DbInterner<'db>> for ScalarInt
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for SolverDefId<'_>
impl<'db> TypeFoldable<DbInterner<'db>> for SolverDefId<'_>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for SolverDefIds<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for SolverDefIds<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for SolverDiagnostic
impl<'db> TypeFoldable<DbInterner<'db>> for SolverDiagnostic
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for SolverDiagnosticKind
impl<'db> TypeFoldable<DbInterner<'db>> for SolverDiagnosticKind
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Span
impl<'db> TypeFoldable<DbInterner<'db>> for Span
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for StoredGenericArg
impl<'db> TypeFoldable<DbInterner<'db>> for StoredGenericArg
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for StoredGenericArgs
impl<'db> TypeFoldable<DbInterner<'db>> for StoredGenericArgs
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for StoredTraitPredicate
impl<'db> TypeFoldable<DbInterner<'db>> for StoredTraitPredicate
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for StoredTraitRef
impl<'db> TypeFoldable<DbInterner<'db>> for StoredTraitRef
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for StoredTy
impl<'db> TypeFoldable<DbInterner<'db>> for StoredTy
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Term<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for Term<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for TraitAssocConstId
impl<'db> TypeFoldable<DbInterner<'db>> for TraitAssocConstId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for TraitAssocTermId
impl<'db> TypeFoldable<DbInterner<'db>> for TraitAssocTermId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for TraitAssocTyId
impl<'db> TypeFoldable<DbInterner<'db>> for TraitAssocTyId
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for TraitIdWrapper
impl<'db> TypeFoldable<DbInterner<'db>> for TraitIdWrapper
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Ty<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for Ty<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for TypeAliasIdWrapper
impl<'db> TypeFoldable<DbInterner<'db>> for TypeAliasIdWrapper
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
_: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for Tys<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for Tys<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for UpvarArgs<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for UpvarArgs<'db>
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ValTree<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for ValTree<'db>
Source§fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
Source§impl<'db> TypeFoldable<DbInterner<'db>> for ValueConst<'db>
impl<'db> TypeFoldable<DbInterner<'db>> for ValueConst<'db>
Source§fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>(
self,
__folder: &mut __F,
) -> Result<Self, __F::Error>
fn try_fold_with<__F: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>
Source§impl<'db, F, G, H> TypeFolder<DbInterner<'db>> for BottomUpFolder<'db, F, G, H>
impl<'db, F, G, H> TypeFolder<DbInterner<'db>> for BottomUpFolder<'db, F, G, H>
fn cx(&self) -> DbInterner<'db>
fn fold_ty(&mut self, ty: Ty<'db>) -> Ty<'db>
fn fold_region(&mut self, r: Region<'db>) -> Region<'db>
fn fold_const(&mut self, ct: Const<'db>) -> Const<'db>
fn fold_binder<T>(&mut self, t: Binder<I, T>) -> Binder<I, T>where
T: TypeFoldable<I>,
fn fold_predicate( &mut self, p: <I as Interner>::Predicate, ) -> <I as Interner>::Predicate
fn fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> <I as Interner>::Clauses
Source§impl<'db, D> TypeFolder<DbInterner<'db>> for BoundVarReplacer<'db, D>where
D: BoundVarReplacerDelegate<'db>,
impl<'db, D> TypeFolder<DbInterner<'db>> for BoundVarReplacer<'db, D>where
D: BoundVarReplacerDelegate<'db>,
fn cx(&self) -> DbInterner<'db>
fn fold_binder<T: TypeFoldable<DbInterner<'db>>>( &mut self, t: Binder<'db, T>, ) -> Binder<'db, T>
fn fold_ty(&mut self, t: Ty<'db>) -> Ty<'db>
fn fold_region(&mut self, r: Region<'db>) -> Region<'db>
fn fold_const(&mut self, ct: Const<'db>) -> Const<'db>
fn fold_predicate(&mut self, p: Predicate<'db>) -> Predicate<'db>
fn fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> <I as Interner>::Clauses
Source§impl<'db, 'a> TypeFolder<DbInterner<'db>> for CanonicalInstantiator<'db, 'a>
impl<'db, 'a> TypeFolder<DbInterner<'db>> for CanonicalInstantiator<'db, 'a>
fn cx(&self) -> DbInterner<'db>
fn fold_ty(&mut self, t: Ty<'db>) -> Ty<'db>
fn fold_region(&mut self, r: Region<'db>) -> Region<'db>
fn fold_const(&mut self, ct: Const<'db>) -> Const<'db>
fn fold_predicate(&mut self, p: Predicate<'db>) -> Predicate<'db>
fn fold_clauses(&mut self, c: Clauses<'db>) -> Clauses<'db>
fn fold_binder<T>(&mut self, t: Binder<I, T>) -> Binder<I, T>where
T: TypeFoldable<I>,
Source§impl<'cx, 'db> TypeFolder<DbInterner<'db>> for Canonicalizer<'cx, 'db>
impl<'cx, 'db> TypeFolder<DbInterner<'db>> for Canonicalizer<'cx, 'db>
fn cx(&self) -> DbInterner<'db>
fn fold_binder<T>(&mut self, t: Binder<'db, T>) -> Binder<'db, T>where
T: TypeFoldable<DbInterner<'db>>,
fn fold_region(&mut self, r: Region<'db>) -> Region<'db>
fn fold_ty(&mut self, t: Ty<'db>) -> Ty<'db>
fn fold_const(&mut self, ct: Const<'db>) -> Const<'db>
fn fold_predicate( &mut self, p: <I as Interner>::Predicate, ) -> <I as Interner>::Predicate
fn fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> <I as Interner>::Clauses
Source§impl<'db> TypeFolder<DbInterner<'db>> for DeeplyNormalizeForDiagnosticsFolder<'_, 'db>
impl<'db> TypeFolder<DbInterner<'db>> for DeeplyNormalizeForDiagnosticsFolder<'_, 'db>
fn cx(&self) -> DbInterner<'db>
fn fold_ty(&mut self, ty: Ty<'db>) -> Ty<'db>
fn fold_const(&mut self, ct: Const<'db>) -> Const<'db>
fn fold_binder<T>(&mut self, t: Binder<I, T>) -> Binder<I, T>where
T: TypeFoldable<I>,
fn fold_region(&mut self, r: <I as Interner>::Region) -> <I as Interner>::Region
fn fold_predicate( &mut self, p: <I as Interner>::Predicate, ) -> <I as Interner>::Predicate
fn fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> <I as Interner>::Clauses
Source§impl<'db> TypeFolder<DbInterner<'db>> for DiagnoseInferVars<'_, 'db>
impl<'db> TypeFolder<DbInterner<'db>> for DiagnoseInferVars<'_, 'db>
fn cx(&self) -> DbInterner<'db>
fn fold_ty(&mut self, t: Ty<'db>) -> Ty<'db>
fn fold_const(&mut self, c: Const<'db>) -> Const<'db>
fn fold_predicate(&mut self, p: Predicate<'db>) -> Predicate<'db>
fn fold_region(&mut self, r: Region<'db>) -> Region<'db>
fn fold_binder<T>(&mut self, t: Binder<I, T>) -> Binder<I, T>where
T: TypeFoldable<I>,
fn fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> <I as Interner>::Clauses
Source§impl<'a, 'db> TypeFolder<DbInterner<'db>> for InferenceFudger<'a, 'db>
impl<'a, 'db> TypeFolder<DbInterner<'db>> for InferenceFudger<'a, 'db>
fn cx(&self) -> DbInterner<'db>
fn fold_ty(&mut self, ty: Ty<'db>) -> Ty<'db>
fn fold_region(&mut self, r: Region<'db>) -> Region<'db>
fn fold_const(&mut self, ct: Const<'db>) -> Const<'db>
fn fold_binder<T>(&mut self, t: Binder<I, T>) -> Binder<I, T>where
T: TypeFoldable<I>,
fn fold_predicate( &mut self, p: <I as Interner>::Predicate, ) -> <I as Interner>::Predicate
fn fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> <I as Interner>::Clauses
Source§impl<'a, 'db> TypeFolder<DbInterner<'db>> for OpportunisticVarResolver<'a, 'db>
impl<'a, 'db> TypeFolder<DbInterner<'db>> for OpportunisticVarResolver<'a, 'db>
fn cx(&self) -> DbInterner<'db>
fn fold_ty(&mut self, t: Ty<'db>) -> Ty<'db>
fn fold_const(&mut self, ct: Const<'db>) -> Const<'db>
fn fold_binder<T>(&mut self, t: Binder<I, T>) -> Binder<I, T>where
T: TypeFoldable<I>,
fn fold_region(&mut self, r: <I as Interner>::Region) -> <I as Interner>::Region
fn fold_predicate( &mut self, p: <I as Interner>::Predicate, ) -> <I as Interner>::Predicate
fn fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> <I as Interner>::Clauses
Source§impl<'db> TypeFolder<DbInterner<'db>> for PlaceholderReplacer<'_, 'db>
impl<'db> TypeFolder<DbInterner<'db>> for PlaceholderReplacer<'_, 'db>
fn cx(&self) -> DbInterner<'db>
fn fold_binder<T: TypeFoldable<DbInterner<'db>>>( &mut self, t: Binder<'db, T>, ) -> Binder<'db, T>
fn fold_region(&mut self, r0: Region<'db>) -> Region<'db>
fn fold_ty(&mut self, ty: Ty<'db>) -> Ty<'db>
fn fold_const(&mut self, ct: Const<'db>) -> Const<'db>
fn fold_predicate( &mut self, p: <I as Interner>::Predicate, ) -> <I as Interner>::Predicate
fn fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> <I as Interner>::Clauses
Source§impl<'db> TypeFolder<DbInterner<'db>> for ReplaceInferWithError<'db>
impl<'db> TypeFolder<DbInterner<'db>> for ReplaceInferWithError<'db>
fn cx(&self) -> DbInterner<'db>
fn fold_ty(&mut self, t: Ty<'db>) -> Ty<'db>
fn fold_const(&mut self, c: Const<'db>) -> Const<'db>
fn fold_region(&mut self, r: Region<'db>) -> Region<'db>
fn fold_binder<T>(&mut self, t: Binder<I, T>) -> Binder<I, T>where
T: TypeFoldable<I>,
fn fold_predicate( &mut self, p: <I as Interner>::Predicate, ) -> <I as Interner>::Predicate
fn fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> <I as Interner>::Clauses
Source§impl<'db> TypeFolder<DbInterner<'db>> for Resolver<'_, 'db>
impl<'db> TypeFolder<DbInterner<'db>> for Resolver<'_, 'db>
fn cx(&self) -> DbInterner<'db>
fn fold_region(&mut self, r: Region<'db>) -> Region<'db>
fn fold_ty(&mut self, ty: Ty<'db>) -> Ty<'db>
fn fold_const(&mut self, ct: Const<'db>) -> Const<'db>
fn fold_predicate(&mut self, predicate: Predicate<'db>) -> Predicate<'db>
fn fold_binder<T>(&mut self, t: Binder<I, T>) -> Binder<I, T>where
T: TypeFoldable<I>,
fn fold_clauses( &mut self, c: <I as Interner>::Clauses, ) -> <I as Interner>::Clauses
Source§impl<'db> TypeRelation<DbInterner<'db>> for Generalizer<'_, 'db>
impl<'db> TypeRelation<DbInterner<'db>> for Generalizer<'_, 'db>
fn cx(&self) -> DbInterner<'db>
fn relate_ty_args( &mut self, a_ty: Ty<'db>, _: Ty<'db>, def_id: SolverDefId<'db>, a_args: GenericArgs<'db>, b_args: GenericArgs<'db>, mk: impl FnOnce(GenericArgs<'db>) -> Ty<'db>, ) -> RelateResult<'db, Ty<'db>>
Source§fn relate_with_variance<T: Relate<DbInterner<'db>>>(
&mut self,
variance: Variance,
_info: VarianceDiagInfo<DbInterner<'db>>,
a: T,
b: T,
) -> RelateResult<'db, T>
fn relate_with_variance<T: Relate<DbInterner<'db>>>( &mut self, variance: Variance, _info: VarianceDiagInfo<DbInterner<'db>>, a: T, b: T, ) -> RelateResult<'db, T>
a and b.fn tys(&mut self, t: Ty<'db>, t2: Ty<'db>) -> RelateResult<'db, Ty<'db>>
fn regions( &mut self, r: Region<'db>, r2: Region<'db>, ) -> RelateResult<'db, Region<'db>>
fn consts( &mut self, c: Const<'db>, c2: Const<'db>, ) -> RelateResult<'db, Const<'db>>
fn binders<T>(
&mut self,
a: Binder<'db, T>,
_: Binder<'db, T>,
) -> RelateResult<'db, Binder<'db, T>>where
T: Relate<DbInterner<'db>>,
Source§impl<'db> TypeRelation<DbInterner<'db>> for LatticeOp<'_, 'db>
impl<'db> TypeRelation<DbInterner<'db>> for LatticeOp<'_, 'db>
Source§fn tys(&mut self, a: Ty<'db>, b: Ty<'db>) -> RelateResult<'db, Ty<'db>>
fn tys(&mut self, a: Ty<'db>, b: Ty<'db>) -> RelateResult<'db, Ty<'db>>
Relates two types using a given lattice.
fn cx(&self) -> DbInterner<'db>
fn relate_ty_args( &mut self, a_ty: Ty<'db>, b_ty: Ty<'db>, def_id: SolverDefId<'db>, a_args: GenericArgs<'db>, b_args: GenericArgs<'db>, mk: impl FnOnce(GenericArgs<'db>) -> Ty<'db>, ) -> RelateResult<'db, Ty<'db>>
Source§fn relate_with_variance<T: Relate<DbInterner<'db>>>(
&mut self,
variance: Variance,
_info: VarianceDiagInfo<DbInterner<'db>>,
a: T,
b: T,
) -> RelateResult<'db, T>
fn relate_with_variance<T: Relate<DbInterner<'db>>>( &mut self, variance: Variance, _info: VarianceDiagInfo<DbInterner<'db>>, a: T, b: T, ) -> RelateResult<'db, T>
a and b.fn regions( &mut self, a: Region<'db>, b: Region<'db>, ) -> RelateResult<'db, Region<'db>>
fn consts( &mut self, a: Const<'db>, b: Const<'db>, ) -> RelateResult<'db, Const<'db>>
fn binders<T>(
&mut self,
a: Binder<'db, T>,
b: Binder<'db, T>,
) -> RelateResult<'db, Binder<'db, T>>where
T: Relate<DbInterner<'db>>,
Source§impl<'db> TypeSuperFoldable<DbInterner<'db>> for Clauses<'db>
impl<'db> TypeSuperFoldable<DbInterner<'db>> for Clauses<'db>
Source§fn try_super_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_super_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
TypeFolder methods, when a non-custom traversal
is desired for the value of the type of interest passed to that method.
For example, in MyFolder::try_fold_ty(ty), it is valid to call
ty.try_super_fold_with(self), but any other folding should be done
with xyz.try_fold_with(self).Source§fn super_fold_with<F: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self
fn super_fold_with<F: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self
try_super_fold_with for use with
infallible folders. Do not override this method, to ensure coherence
with try_super_fold_with.Source§impl<'db> TypeSuperFoldable<DbInterner<'db>> for Const<'db>
impl<'db> TypeSuperFoldable<DbInterner<'db>> for Const<'db>
Source§fn try_super_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_super_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
TypeFolder methods, when a non-custom traversal
is desired for the value of the type of interest passed to that method.
For example, in MyFolder::try_fold_ty(ty), it is valid to call
ty.try_super_fold_with(self), but any other folding should be done
with xyz.try_fold_with(self).Source§fn super_fold_with<F: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self
fn super_fold_with<F: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self
try_super_fold_with for use with
infallible folders. Do not override this method, to ensure coherence
with try_super_fold_with.Source§impl<'db> TypeSuperFoldable<DbInterner<'db>> for Predicate<'db>
impl<'db> TypeSuperFoldable<DbInterner<'db>> for Predicate<'db>
Source§fn try_super_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_super_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
TypeFolder methods, when a non-custom traversal
is desired for the value of the type of interest passed to that method.
For example, in MyFolder::try_fold_ty(ty), it is valid to call
ty.try_super_fold_with(self), but any other folding should be done
with xyz.try_fold_with(self).Source§fn super_fold_with<F: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self
fn super_fold_with<F: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self
try_super_fold_with for use with
infallible folders. Do not override this method, to ensure coherence
with try_super_fold_with.Source§impl<'db> TypeSuperFoldable<DbInterner<'db>> for Ty<'db>
impl<'db> TypeSuperFoldable<DbInterner<'db>> for Ty<'db>
Source§fn try_super_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>(
self,
folder: &mut F,
) -> Result<Self, F::Error>
fn try_super_fold_with<F: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>
TypeFolder methods, when a non-custom traversal
is desired for the value of the type of interest passed to that method.
For example, in MyFolder::try_fold_ty(ty), it is valid to call
ty.try_super_fold_with(self), but any other folding should be done
with xyz.try_fold_with(self).Source§fn super_fold_with<F: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self
fn super_fold_with<F: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self
try_super_fold_with for use with
infallible folders. Do not override this method, to ensure coherence
with try_super_fold_with.Source§impl<'db> TypeSuperVisitable<DbInterner<'db>> for Clauses<'db>
impl<'db> TypeSuperVisitable<DbInterner<'db>> for Clauses<'db>
Source§fn super_visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn super_visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
TypeVisitor methods, when a non-custom
traversal is desired for the value of the type of interest passed to
that method. For example, in MyVisitor::visit_ty(ty), it is valid to
call ty.super_visit_with(self), but any other visiting should be done
with xyz.visit_with(self).Source§impl<'db> TypeSuperVisitable<DbInterner<'db>> for Const<'db>
impl<'db> TypeSuperVisitable<DbInterner<'db>> for Const<'db>
Source§fn super_visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn super_visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
TypeVisitor methods, when a non-custom
traversal is desired for the value of the type of interest passed to
that method. For example, in MyVisitor::visit_ty(ty), it is valid to
call ty.super_visit_with(self), but any other visiting should be done
with xyz.visit_with(self).Source§impl<'db> TypeSuperVisitable<DbInterner<'db>> for Predicate<'db>
impl<'db> TypeSuperVisitable<DbInterner<'db>> for Predicate<'db>
Source§fn super_visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn super_visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
TypeVisitor methods, when a non-custom
traversal is desired for the value of the type of interest passed to
that method. For example, in MyVisitor::visit_ty(ty), it is valid to
call ty.super_visit_with(self), but any other visiting should be done
with xyz.visit_with(self).Source§impl<'db> TypeSuperVisitable<DbInterner<'db>> for Ty<'db>
impl<'db> TypeSuperVisitable<DbInterner<'db>> for Ty<'db>
Source§fn super_visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn super_visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
TypeVisitor methods, when a non-custom
traversal is desired for the value of the type of interest passed to
that method. For example, in MyVisitor::visit_ty(ty), it is valid to
call ty.super_visit_with(self), but any other visiting should be done
with xyz.visit_with(self).Source§impl<'db> TypeVisitable<DbInterner<'db>> for AdtDef
impl<'db> TypeVisitable<DbInterner<'db>> for AdtDef
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for AdtIdWrapper
impl<'db> TypeVisitable<DbInterner<'db>> for AdtIdWrapper
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for AnyImplId
impl<'db> TypeVisitable<DbInterner<'db>> for AnyImplId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for BoundExistentialPredicates<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for BoundExistentialPredicates<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for CallableIdWrapper
impl<'db> TypeVisitable<DbInterner<'db>> for CallableIdWrapper
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Clause<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for Clause<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Clauses<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for Clauses<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ClosureIdWrapper<'_>
impl<'db> TypeVisitable<DbInterner<'db>> for ClosureIdWrapper<'_>
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Const<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for Const<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Consts<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for Consts<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for CoroutineClosureIdWrapper<'_>
impl<'db> TypeVisitable<DbInterner<'db>> for CoroutineClosureIdWrapper<'_>
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for CoroutineIdWrapper<'_>
impl<'db> TypeVisitable<DbInterner<'db>> for CoroutineIdWrapper<'_>
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for EarlyParamRegion
impl<'db> TypeVisitable<DbInterner<'db>> for EarlyParamRegion
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ErrorGuaranteed
impl<'db> TypeVisitable<DbInterner<'db>> for ErrorGuaranteed
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ExprConst
impl<'db> TypeVisitable<DbInterner<'db>> for ExprConst
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ExternAbi
impl<'db> TypeVisitable<DbInterner<'db>> for ExternAbi
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
_visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, _visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ExternalConstraints<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for ExternalConstraints<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for FreeConstAliasId
impl<'db> TypeVisitable<DbInterner<'db>> for FreeConstAliasId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for FreeTermAliasId
impl<'db> TypeVisitable<DbInterner<'db>> for FreeTermAliasId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for FreeTyAliasId
impl<'db> TypeVisitable<DbInterner<'db>> for FreeTyAliasId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for GeneralConstIdWrapper<'_>
impl<'db> TypeVisitable<DbInterner<'db>> for GeneralConstIdWrapper<'_>
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for GenericArg<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for GenericArg<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for GenericArgs<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for GenericArgs<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ImplOrTraitAssocConstId
impl<'db> TypeVisitable<DbInterner<'db>> for ImplOrTraitAssocConstId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ImplOrTraitAssocTermId
impl<'db> TypeVisitable<DbInterner<'db>> for ImplOrTraitAssocTermId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ImplOrTraitAssocTyId
impl<'db> TypeVisitable<DbInterner<'db>> for ImplOrTraitAssocTyId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db, N> TypeVisitable<DbInterner<'db>> for ImplSource<'db, N>where
N: TypeVisitable<DbInterner<'db>>,
impl<'db, N> TypeVisitable<DbInterner<'db>> for ImplSource<'db, N>where
N: TypeVisitable<DbInterner<'db>>,
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db, N> TypeVisitable<DbInterner<'db>> for ImplSourceUserDefinedData<'db, N>where
N: TypeVisitable<DbInterner<'db>>,
impl<'db, N> TypeVisitable<DbInterner<'db>> for ImplSourceUserDefinedData<'db, N>where
N: TypeVisitable<DbInterner<'db>>,
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for InferenceDiagnostic
impl<'db> TypeVisitable<DbInterner<'db>> for InferenceDiagnostic
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for InherentAssocConstId
impl<'db> TypeVisitable<DbInterner<'db>> for InherentAssocConstId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for InherentAssocTermId
impl<'db> TypeVisitable<DbInterner<'db>> for InherentAssocTermId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for InherentAssocTyId
impl<'db> TypeVisitable<DbInterner<'db>> for InherentAssocTyId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db, T> TypeVisitable<DbInterner<'db>> for Obligation<'db, T>where
T: TypeVisitable<DbInterner<'db>>,
impl<'db, T> TypeVisitable<DbInterner<'db>> for Obligation<'db, T>where
T: TypeVisitable<DbInterner<'db>>,
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ObligationCause
impl<'db> TypeVisitable<DbInterner<'db>> for ObligationCause
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for OpaqueHiddenType<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for OpaqueHiddenType<'db>
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for OpaqueTyIdWrapper<'_>
impl<'db> TypeVisitable<DbInterner<'db>> for OpaqueTyIdWrapper<'_>
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ParamConst
impl<'db> TypeVisitable<DbInterner<'db>> for ParamConst
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ParamEnv<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for ParamEnv<'db>
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ParamTy
impl<'db> TypeVisitable<DbInterner<'db>> for ParamTy
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for PatList<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for PatList<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Pattern<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for Pattern<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Place
impl<'db> TypeVisitable<DbInterner<'db>> for Place
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for PlaceTy<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for PlaceTy<'db>
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for PredefinedOpaques<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for PredefinedOpaques<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Predicate<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for Predicate<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Projection
impl<'db> TypeVisitable<DbInterner<'db>> for Projection
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for QueryRegionConstraints<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for QueryRegionConstraints<'db>
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db, R> TypeVisitable<DbInterner<'db>> for QueryResponse<'db, R>where
R: TypeVisitable<DbInterner<'db>>,
impl<'db, R> TypeVisitable<DbInterner<'db>> for QueryResponse<'db, R>where
R: TypeVisitable<DbInterner<'db>>,
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Region<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for Region<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for RegionAssumptions<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for RegionAssumptions<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Safety
impl<'db> TypeVisitable<DbInterner<'db>> for Safety
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ScalarInt
impl<'db> TypeVisitable<DbInterner<'db>> for ScalarInt
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for SolverDefId<'_>
impl<'db> TypeVisitable<DbInterner<'db>> for SolverDefId<'_>
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for SolverDefIds<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for SolverDefIds<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for SolverDiagnostic
impl<'db> TypeVisitable<DbInterner<'db>> for SolverDiagnostic
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for SolverDiagnosticKind
impl<'db> TypeVisitable<DbInterner<'db>> for SolverDiagnosticKind
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Span
impl<'db> TypeVisitable<DbInterner<'db>> for Span
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for StoredGenericArg
impl<'db> TypeVisitable<DbInterner<'db>> for StoredGenericArg
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for StoredGenericArgs
impl<'db> TypeVisitable<DbInterner<'db>> for StoredGenericArgs
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for StoredTraitPredicate
impl<'db> TypeVisitable<DbInterner<'db>> for StoredTraitPredicate
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for StoredTraitRef
impl<'db> TypeVisitable<DbInterner<'db>> for StoredTraitRef
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for StoredTy
impl<'db> TypeVisitable<DbInterner<'db>> for StoredTy
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Term<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for Term<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for TraitAssocConstId
impl<'db> TypeVisitable<DbInterner<'db>> for TraitAssocConstId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for TraitAssocTermId
impl<'db> TypeVisitable<DbInterner<'db>> for TraitAssocTermId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for TraitAssocTyId
impl<'db> TypeVisitable<DbInterner<'db>> for TraitAssocTyId
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for TraitIdWrapper
impl<'db> TypeVisitable<DbInterner<'db>> for TraitIdWrapper
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Ty<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for Ty<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for TypeAliasIdWrapper
impl<'db> TypeVisitable<DbInterner<'db>> for TypeAliasIdWrapper
Source§fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
fn visit_with<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for Tys<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for Tys<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for UpvarArgs<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for UpvarArgs<'db>
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ValTree<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for ValTree<'db>
Source§fn visit_with<V: TypeVisitor<DbInterner<'db>>>(
&self,
visitor: &mut V,
) -> V::Result
fn visit_with<V: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result
Source§impl<'db> TypeVisitable<DbInterner<'db>> for ValueConst<'db>
impl<'db> TypeVisitable<DbInterner<'db>> for ValueConst<'db>
Source§fn visit_with<__V: TypeVisitor<DbInterner<'db>>>(
&self,
__visitor: &mut __V,
) -> __V::Result
fn visit_with<__V: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result
Source§impl<'db> TypeVisitor<DbInterner<'db>> for ContainsTypeErrors
impl<'db> TypeVisitor<DbInterner<'db>> for ContainsTypeErrors
type Result = ControlFlow<()>
fn visit_ty(&mut self, t: Ty<'db>) -> Self::Result
fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Resultwhere
T: TypeVisitable<I>,
fn visit_region(&mut self, r: <I as Interner>::Region) -> Self::Result
fn visit_const(&mut self, c: <I as Interner>::Const) -> Self::Result
fn visit_predicate(&mut self, p: <I as Interner>::Predicate) -> Self::Result
fn visit_clauses(&mut self, c: <I as Interner>::Clauses) -> Self::Result
fn visit_error( &mut self, _guar: <I as Interner>::ErrorGuaranteed, ) -> Self::Result
Source§impl<'db> TypeVisitor<DbInterner<'db>> for MaxUniverse
impl<'db> TypeVisitor<DbInterner<'db>> for MaxUniverse
type Result = ()
fn visit_ty(&mut self, t: Ty<'db>)
fn visit_const(&mut self, c: Const<'db>)
fn visit_region(&mut self, r: Region<'db>)
fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Resultwhere
T: TypeVisitable<I>,
fn visit_predicate(&mut self, p: <I as Interner>::Predicate) -> Self::Result
fn visit_clauses(&mut self, c: <I as Interner>::Clauses) -> Self::Result
fn visit_error( &mut self, _guar: <I as Interner>::ErrorGuaranteed, ) -> Self::Result
Source§impl<'db> TypeVisitor<DbInterner<'db>> for MentionsPointee
impl<'db> TypeVisitor<DbInterner<'db>> for MentionsPointee
type Result = ControlFlow<()>
fn visit_ty(&mut self, t: Ty<'db>) -> Self::Result
fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Resultwhere
T: TypeVisitable<I>,
fn visit_region(&mut self, r: <I as Interner>::Region) -> Self::Result
fn visit_const(&mut self, c: <I as Interner>::Const) -> Self::Result
fn visit_predicate(&mut self, p: <I as Interner>::Predicate) -> Self::Result
fn visit_clauses(&mut self, c: <I as Interner>::Clauses) -> Self::Result
fn visit_error( &mut self, _guar: <I as Interner>::ErrorGuaranteed, ) -> Self::Result
Source§impl<'db> TypeVisitor<DbInterner<'db>> for ParamCollector
impl<'db> TypeVisitor<DbInterner<'db>> for ParamCollector
type Result = ()
fn visit_ty(&mut self, ty: Ty<'db>) -> Self::Result
fn visit_const(&mut self, konst: Const<'db>) -> Self::Result
fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Resultwhere
T: TypeVisitable<I>,
fn visit_region(&mut self, r: <I as Interner>::Region) -> Self::Result
fn visit_predicate(&mut self, p: <I as Interner>::Predicate) -> Self::Result
fn visit_clauses(&mut self, c: <I as Interner>::Clauses) -> Self::Result
fn visit_error( &mut self, _guar: <I as Interner>::ErrorGuaranteed, ) -> Self::Result
Source§impl<'db> TypeVisitor<DbInterner<'db>> for ReferencesOnlyTyError
impl<'db> TypeVisitor<DbInterner<'db>> for ReferencesOnlyTyError
type Result = ControlFlow<()>
fn visit_ty(&mut self, ty: Ty<'db>) -> Self::Result
fn visit_const(&mut self, c: Const<'db>) -> Self::Result
fn visit_predicate(&mut self, p: Predicate<'db>) -> Self::Result
fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Resultwhere
T: TypeVisitable<I>,
fn visit_region(&mut self, r: <I as Interner>::Region) -> Self::Result
fn visit_clauses(&mut self, c: <I as Interner>::Clauses) -> Self::Result
fn visit_error( &mut self, _guar: <I as Interner>::ErrorGuaranteed, ) -> Self::Result
Source§impl<'db> TypeVisitor<DbInterner<'db>> for StalledOnCoroutines<'_, 'db>
impl<'db> TypeVisitor<DbInterner<'db>> for StalledOnCoroutines<'_, 'db>
type Result = ControlFlow<()>
fn visit_ty(&mut self, ty: Ty<'db>) -> Self::Result
fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Resultwhere
T: TypeVisitable<I>,
fn visit_region(&mut self, r: <I as Interner>::Region) -> Self::Result
fn visit_const(&mut self, c: <I as Interner>::Const) -> Self::Result
fn visit_predicate(&mut self, p: <I as Interner>::Predicate) -> Self::Result
fn visit_clauses(&mut self, c: <I as Interner>::Clauses) -> Self::Result
fn visit_error( &mut self, _guar: <I as Interner>::ErrorGuaranteed, ) -> Self::Result
Source§impl<'db> TypeVisitor<DbInterner<'db>> for UninhabitedFrom<'_, 'db>
impl<'db> TypeVisitor<DbInterner<'db>> for UninhabitedFrom<'_, 'db>
type Result = ControlFlow<VisiblyUninhabited>
fn visit_ty(&mut self, ty: Ty<'db>) -> ControlFlow<VisiblyUninhabited>
fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Resultwhere
T: TypeVisitable<I>,
fn visit_region(&mut self, r: <I as Interner>::Region) -> Self::Result
fn visit_const(&mut self, c: <I as Interner>::Const) -> Self::Result
fn visit_predicate(&mut self, p: <I as Interner>::Predicate) -> Self::Result
fn visit_clauses(&mut self, c: <I as Interner>::Clauses) -> Self::Result
fn visit_error( &mut self, _guar: <I as Interner>::ErrorGuaranteed, ) -> Self::Result
Source§impl<'db> Tys<DbInterner<'db>> for Tys<'db>
impl<'db> Tys<DbInterner<'db>> for Tys<'db>
fn inputs(self) -> <DbInterner<'db> as Interner>::FnInputTys
fn output(self) -> <DbInterner<'db> as Interner>::Ty
Source§impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>> for Clause<'db>
impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>> for Clause<'db>
fn upcast_from( from: Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>> for Predicate<'db>
fn upcast_from( from: Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>>> for Predicate<'db>
fn upcast_from( from: PolyRegionOutlivesPredicate<'db>, tcx: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, PredicateKind<DbInterner<'db>>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, PredicateKind<DbInterner<'db>>>> for Predicate<'db>
fn upcast_from( from: Binder<DbInterner<'db>, PredicateKind<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>> for Clause<'db>
impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>> for Clause<'db>
fn upcast_from( from: Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>> for Predicate<'db>
fn upcast_from( from: Binder<'db, ProjectionPredicate<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>> for Clause<'db>
impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>> for Clause<'db>
fn upcast_from( from: Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>> for Predicate<'db>
fn upcast_from( from: Binder<'db, TraitPredicate<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>> for Clause<'db>
impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>> for Clause<'db>
fn upcast_from( from: Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>> for Predicate<'db>
fn upcast_from( from: Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, Clause<'db>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, Clause<'db>> for Predicate<'db>
fn upcast_from(from: Clause<'db>, _interner: DbInterner<'db>) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, ClauseKind<DbInterner<'db>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, ClauseKind<DbInterner<'db>>> for Predicate<'db>
fn upcast_from( from: ClauseKind<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, NormalizesTo<DbInterner<'db>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, NormalizesTo<DbInterner<'db>>> for Predicate<'db>
fn upcast_from( from: NormalizesTo<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>> for Clause<'db>
impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>> for Clause<'db>
fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Region<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>> for Predicate<'db>
fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Region<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Ty<'db>>> for Clause<'db>
impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Ty<'db>>> for Clause<'db>
fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Ty<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Ty<'db>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Ty<'db>>> for Predicate<'db>
fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Ty<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, PredicateKind<DbInterner<'db>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, PredicateKind<DbInterner<'db>>> for Predicate<'db>
fn upcast_from( from: PredicateKind<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>> for Clause<'db>
impl<'db> UpcastFrom<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>> for Clause<'db>
fn upcast_from( from: ProjectionPredicate<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>> for Predicate<'db>
fn upcast_from( from: ProjectionPredicate<'db>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, TraitPredicate<DbInterner<'db>>> for Clause<'db>
impl<'db> UpcastFrom<DbInterner<'db>, TraitPredicate<DbInterner<'db>>> for Clause<'db>
fn upcast_from( from: TraitPredicate<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, TraitPredicate<DbInterner<'db>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, TraitPredicate<DbInterner<'db>>> for Predicate<'db>
fn upcast_from( from: TraitPredicate<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, TraitRef<DbInterner<'db>>> for Clause<'db>
impl<'db> UpcastFrom<DbInterner<'db>, TraitRef<DbInterner<'db>>> for Clause<'db>
fn upcast_from( from: TraitRef<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> UpcastFrom<DbInterner<'db>, TraitRef<DbInterner<'db>>> for Predicate<'db>
impl<'db> UpcastFrom<DbInterner<'db>, TraitRef<DbInterner<'db>>> for Predicate<'db>
fn upcast_from( from: TraitRef<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self
Source§impl<'db> ValueConst<DbInterner<'db>> for ValueConst<'db>
impl<'db> ValueConst<DbInterner<'db>> for ValueConst<'db>
impl<'db> Clauses<DbInterner<'db>> for Clauses<'db>
impl<'db> Copy for DbInterner<'db>
impl Send for DbInterner<'_>
impl Sync for DbInterner<'_>
Auto Trait Implementations§
impl<'db> Freeze for DbInterner<'db>
impl<'db> !RefUnwindSafe for DbInterner<'db>
impl<'db> Unpin for DbInterner<'db>
impl<'db> UnsafeUnpin for DbInterner<'db>
impl<'db> !UnwindSafe for DbInterner<'db>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<I> Cx for Iwhere
I: Interner,
impl<I> Cx for Iwhere
I: Interner,
type Input = CanonicalQueryInput<I, QueryInput<I, <I as Interner>::Predicate>>
type Result = (Result<Canonical<I, Response<I>>, NoSolution>, AccessedOpaques<I>)
type AmbiguityInfo = Certainty
type DepNodeIndex = <I as Interner>::DepNodeIndex
type Tracked<T: Debug + Clone> = <I as Interner>::Tracked<T>
fn mk_tracked<T>( self, data: T, dep_node_index: <I as Interner>::DepNodeIndex, ) -> <I as Interner>::Tracked<T>
fn get_tracked<T>(self, tracked: &<I as Interner>::Tracked<T>) -> T
fn with_cached_task<T>( self, task: impl FnOnce() -> T, ) -> (T, <I as Interner>::DepNodeIndex)
fn with_global_cache<R>(self, f: impl FnOnce(&mut GlobalCache<I>) -> R) -> R
fn assert_evaluation_is_concurrent(&self)
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more