Skip to main content

DbInterner

Struct DbInterner 

Source
pub struct DbInterner<'db> {
    pub db: &'db (dyn HirDatabase + 'static),
    krate: Option<Crate>,
    lang_items: Option<&'db LangItems>,
}

Fields§

§db: &'db (dyn HirDatabase + 'static)§krate: Option<Crate>§lang_items: Option<&'db LangItems>

Implementations§

Source§

impl<'db> DbInterner<'db>

Source

pub fn instantiate_bound_regions<T, F>( self, value: Binder<DbInterner<'db>, T>, fld_r: F, ) -> (T, IndexMap<BoundRegion<DbInterner<'db>>, Region<'db>, FxBuildHasher>)
where F: FnMut(BoundRegion<DbInterner<'db>>) -> Region<'db>, T: TypeFoldable<DbInterner<'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.

Source

pub fn instantiate_bound_regions_uncached<T, F>( self, value: Binder<DbInterner<'db>, T>, replace_regions: F, ) -> T
where F: FnMut(BoundRegion<DbInterner<'db>>) -> Region<'db>, T: TypeFoldable<DbInterner<'db>>,

Source

pub fn instantiate_bound_regions_with_erased<T>( self, value: Binder<DbInterner<'db>, T>, ) -> T
where 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.

Source

pub fn liberate_late_bound_regions<T>( self, all_outlive_scope: SolverDefId<'db>, value: Binder<DbInterner<'db>, T>, ) -> T
where 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>

Source

pub fn new_no_crate(db: &'db (dyn HirDatabase + 'static)) -> DbInterner<'db>

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().

Source

pub fn new_with( db: &'db (dyn HirDatabase + 'static), krate: Crate, ) -> DbInterner<'db>

Source

pub fn db(&self) -> &'db (dyn HirDatabase + 'static)

Source

pub fn lang_items(&self) -> &'db LangItems

Source

pub fn default_types(&self) -> &'db DefaultAny<'db>

Source§

impl<'db> DbInterner<'db>

Source

pub fn shift_bound_var_indices<T>(self, bound_vars: usize, value: T) -> T
where T: TypeFoldable<DbInterner<'db>>,

Source

pub fn replace_escaping_bound_vars_uncached<T>( self, value: T, delegate: impl BoundVarReplacerDelegate<'db>, ) -> T
where T: TypeFoldable<DbInterner<'db>>,

Source

pub fn replace_bound_vars_uncached<T>( self, value: Binder<DbInterner<'db>, T>, delegate: impl BoundVarReplacerDelegate<'db>, ) -> T
where T: TypeFoldable<DbInterner<'db>>,

Source

pub fn mk_fn_sig<I>( self, inputs: I, output: Ty<'db>, c_variadic: bool, safety: Safety, abi: ExternAbi, ) -> FnSig<DbInterner<'db>>
where I: IntoIterator<Item = Ty<'db>>,

Source

pub fn mk_fn_sig_safe_rust_abi<I>( self, inputs: I, output: Ty<'db>, ) -> FnSig<DbInterner<'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>

Source

pub fn signature_unclosure( self, sig: Binder<DbInterner<'db>, FnSig<DbInterner<'db>>>, safety: Safety, ) -> Binder<DbInterner<'db>, FnSig<DbInterner<'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

Source§

fn def_id(self) -> AdtIdWrapper

Source§

fn is_struct(self) -> bool

Source§

fn is_phantom_data(self) -> bool

Source§

fn is_manually_drop(self) -> bool

Source§

fn is_packed(self) -> bool

Source§

fn is_fundamental(self) -> bool

Source§

fn struct_tail_ty( self, interner: DbInterner<'db>, ) -> Option<EarlyBinder<DbInterner<'db>, Ty<'db>>>

Returns the type of the struct tail. Read more
Source§

fn all_field_tys( self, interner: DbInterner<'db>, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = Ty<'db>>>

Source§

fn sizedness_constraint( self, interner: DbInterner<'db>, sizedness: SizedTraitKind, ) -> Option<EarlyBinder<DbInterner<'db>, Ty<'db>>>

Source§

fn destructor(self, interner: DbInterner<'db>) -> Option<AdtDestructorKind>

Source§

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>

Source§

fn principal_def_id(self) -> Option<TraitIdWrapper>

Source§

fn principal( self, ) -> Option<Binder<DbInterner<'db>, ExistentialTraitRef<DbInterner<'db>>>>

Source§

fn auto_traits(self) -> impl IntoIterator<Item = TraitIdWrapper>

Source§

fn projection_bounds( self, ) -> impl IntoIterator<Item = Binder<DbInterner<'db>, ExistentialProjection<DbInterner<'db>>>>

Source§

impl<'db> Clause<DbInterner<'db>> for Clause<'db>

Source§

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>>>, ) -> Clause<'db>

Performs a instantiation suitable for going from a poly-trait-ref to supertraits that must hold if that poly-trait-ref holds. This is slightly different from a normal instantiation in terms of what happens with bound regions.
§

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> Clauses<DbInterner<'db>> for Clauses<'db>

Source§

impl<'db> Clone for DbInterner<'db>

Source§

fn clone(&self) -> DbInterner<'db>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'db> Const<DbInterner<'db>> for Const<'db>

Source§

fn new_infer(interner: DbInterner<'db>, var: InferConst) -> Const<'db>

Source§

fn new_var(interner: DbInterner<'db>, var: ConstVid) -> Const<'db>

Source§

fn new_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundConst<DbInterner<'db>>, ) -> Const<'db>

Source§

fn new_anon_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundVar, ) -> Const<'db>

Source§

fn new_canonical_bound(interner: DbInterner<'db>, var: BoundVar) -> Const<'db>

Source§

fn new_placeholder( interner: DbInterner<'db>, param: Placeholder<DbInterner<'db>, BoundConst<DbInterner<'db>>>, ) -> Const<'db>

Source§

fn new_unevaluated( interner: DbInterner<'db>, uv: UnevaluatedConst<DbInterner<'db>>, ) -> Const<'db>

Source§

fn new_expr(interner: DbInterner<'db>, expr: ExprConst) -> Const<'db>

Source§

fn new_error(interner: DbInterner<'db>, _guar: ErrorGuaranteed) -> Const<'db>

§

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> Copy for DbInterner<'db>

Source§

impl<'db> DbInternerInferExt<'db> for DbInterner<'db>

Source§

impl<'db> Debug for DbInterner<'db>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'db> DefId<DbInterner<'db>, OpaqueTyIdWrapper<'db>> for OpaqueTyIdWrapper<'db>

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitIdWrapper

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TypeAliasIdWrapper

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ClosureIdWrapper<'db>

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for CoroutineIdWrapper<'db>

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for CoroutineClosureIdWrapper<'db>

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for AdtIdWrapper

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitAssocTyId

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitAssocConstId

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for TraitAssocTermId

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ImplOrTraitAssocTyId

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ImplOrTraitAssocConstId

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for ImplOrTraitAssocTermId

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for FreeTyAliasId

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for FreeConstAliasId

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for FreeTermAliasId

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for InherentAssocTyId

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for InherentAssocConstId

Source§

impl<'db> DefId<DbInterner<'db>, SolverDefId<'db>> for InherentAssocTermId

Source§

impl<'db> DefId<DbInterner<'db>> for SolverDefId<'db>

Source§

impl<'db> DefId<DbInterner<'db>> for GeneralConstIdWrapper<'db>

Source§

impl<'db> DefId<DbInterner<'db>> for CallableIdWrapper

Source§

impl<'db> DefId<DbInterner<'db>> for AnyImplId

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.

Source§

fn predicate(&self) -> Predicate<'db>

Source§

fn child(&self, clause: Clause<'db>) -> Obligation<'db, Predicate<'db>>

Source§

fn child_with_derived_cause( &self, clause: Clause<'db>, span: Span, _parent_trait_pred: Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>, _index: usize, ) -> Obligation<'db, Predicate<'db>>

Source§

impl<'db> Elaboratable<DbInterner<'db>> for Predicate<'db>

Source§

fn predicate(&self) -> <DbInterner<'db> as Interner>::Predicate

Source§

fn child(&self, clause: <DbInterner<'db> as Interner>::Clause) -> Predicate<'db>

Source§

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, ) -> Predicate<'db>

Source§

impl<'db> Elaboratable<DbInterner<'db>> for Clause<'db>

Source§

fn predicate(&self) -> <DbInterner<'db> as Interner>::Predicate

Source§

fn child(&self, clause: <DbInterner<'db> as Interner>::Clause) -> Clause<'db>

Source§

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, ) -> Clause<'db>

Source§

impl<'db> ExprConst<DbInterner<'db>> for ExprConst

Source§

fn args(self) -> <DbInterner<'db> as Interner>::GenericArgs

Source§

impl<'db> Features<DbInterner<'db>> for Features

Source§

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>

Source§

fn as_closure(self) -> ClosureArgs<DbInterner<'db>>

Source§

fn as_coroutine(self) -> CoroutineArgs<DbInterner<'db>>

Source§

fn as_coroutine_closure(self) -> CoroutineClosureArgs<DbInterner<'db>>

Source§

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

Source§

fn identity_for_item( interner: DbInterner<'db>, def_id: <DbInterner<'db> as Interner>::DefId, ) -> <DbInterner<'db> as Interner>::GenericArgs

Source§

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

Source§

fn type_at(self, i: usize) -> <DbInterner<'db> as Interner>::Ty

Source§

fn region_at(self, i: usize) -> <DbInterner<'db> as Interner>::Region

Source§

fn const_at(self, i: usize) -> <DbInterner<'db> as Interner>::Const

Source§

fn split_closure_args(self) -> ClosureArgsParts<DbInterner<'db>>

Source§

fn split_coroutine_closure_args( self, ) -> CoroutineClosureArgsParts<DbInterner<'db>>

Source§

fn split_coroutine_args(self) -> CoroutineArgsParts<DbInterner<'db>>

Source§

impl<'db> GenericsOf<DbInterner<'db>> for Generics<'db>

Source§

fn count(&self) -> usize

Source§

impl<'db> HasDataLayout for DbInterner<'db>

Source§

fn data_layout(&self) -> &TargetDataLayout

Source§

impl<'db> Interner for DbInterner<'db>

Source§

type DefId = SolverDefId<'db>

Source§

type LocalDefId = SolverDefId<'db>

Source§

type LocalDefIds = SolverDefIds<'db>

Source§

type TraitId = TraitIdWrapper

Source§

type ForeignId = TypeAliasIdWrapper

Source§

type FunctionId = CallableIdWrapper

Source§

type ClosureId = ClosureIdWrapper<'db>

Source§

type CoroutineClosureId = CoroutineClosureIdWrapper<'db>

Source§

type CoroutineId = CoroutineIdWrapper<'db>

Source§

type AdtId = AdtIdWrapper

Source§

type ImplId = AnyImplId

Source§

type UnevaluatedConstId = GeneralConstIdWrapper<'db>

Source§

type TraitAssocTyId = TraitAssocTyId

Source§

type TraitAssocConstId = TraitAssocConstId

Source§

type TraitAssocTermId = TraitAssocTermId

Source§

type OpaqueTyId = OpaqueTyIdWrapper<'db>

Source§

type LocalOpaqueTyId = OpaqueTyIdWrapper<'db>

Source§

type FreeTyAliasId = FreeTyAliasId

Source§

type FreeConstAliasId = FreeConstAliasId

Source§

type FreeTermAliasId = FreeTermAliasId

Source§

type ImplOrTraitAssocTyId = ImplOrTraitAssocTyId

Source§

type ImplOrTraitAssocConstId = ImplOrTraitAssocConstId

Source§

type ImplOrTraitAssocTermId = ImplOrTraitAssocTermId

Source§

type InherentAssocTyId = InherentAssocTyId

Source§

type InherentAssocConstId = InherentAssocConstId

Source§

type InherentAssocTermId = InherentAssocTermId

Source§

type Span = Span

Source§

type GenericArgs = GenericArgs<'db>

Source§

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

Source§

type GenericArg = GenericArg<'db>

Source§

type Term = Term<'db>

Source§

type BoundVarKinds = BoundVarKinds<'db>

Source§

type PredefinedOpaques = PredefinedOpaques<'db>

Source§

type CanonicalVarKinds = CanonicalVarKinds<'db>

Source§

type ExternalConstraints = ExternalConstraints<'db>

Source§

type DepNodeIndex = DepNodeIndex

Source§

type Tracked<T: Debug + Clone> = Tracked<T>

Source§

type Ty = Ty<'db>

Source§

type Tys = Tys<'db>

Source§

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

Source§

type ParamTy = ParamTy

Source§

type Symbol = Symbol

Source§

type ErrorGuaranteed = ErrorGuaranteed

Source§

type BoundExistentialPredicates = BoundExistentialPredicates<'db>

Source§

type AllocId = AllocId

Source§

type Pat = Pattern<'db>

Source§

type PatList = PatList<'db>

Source§

type Safety = Safety

Source§

type Const = Const<'db>

Source§

type ParamConst = ParamConst

Source§

type ValueConst = ValueConst<'db>

Source§

type ValTree = ValTree<'db>

Source§

type Consts = Consts<'db>

Source§

type ScalarInt = ScalarInt

Source§

type ExprConst = ExprConst

Source§

type Region = Region<'db>

Source§

type EarlyParamRegion = EarlyParamRegion

Source§

type LateParamRegion = LateParamRegion<'db>

Source§

type RegionAssumptions = RegionAssumptions<'db>

Source§

type ParamEnv = ParamEnv<'db>

Source§

type Predicate = Predicate<'db>

Source§

type Clause = Clause<'db>

Source§

type Clauses = Clauses<'db>

Source§

type GenericsOf = Generics<'db>

Source§

type VariancesOf = VariancesOf<'db>

Source§

type AdtDef = AdtDef

Source§

type Features = Features

Source§

type UnsizingParams = UnsizingParams

Source§

type Probe = Probe<DbInterner<'db>>

Source§

fn mk_predefined_opaques_in_body( self, data: &[(OpaqueTypeKey<DbInterner<'db>>, <DbInterner<'db> as Interner>::Ty)], ) -> <DbInterner<'db> as Interner>::PredefinedOpaques

Source§

fn mk_canonical_var_kinds( self, kinds: &[CanonicalVarKind<DbInterner<'db>>], ) -> <DbInterner<'db> as Interner>::CanonicalVarKinds

Source§

fn mk_external_constraints( self, data: ExternalConstraintsData<DbInterner<'db>>, ) -> <DbInterner<'db> as Interner>::ExternalConstraints

Source§

fn mk_args( self, args: &[<DbInterner<'db> as Interner>::GenericArg], ) -> <DbInterner<'db> as Interner>::GenericArgs

Source§

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

Source§

fn mk_tracked<T>( self, data: T, _dep_node: <DbInterner<'db> as Interner>::DepNodeIndex, ) -> <DbInterner<'db> as Interner>::Tracked<T>
where T: Debug + Clone,

Source§

fn get_tracked<T>( self, tracked: &<DbInterner<'db> as Interner>::Tracked<T>, ) -> T
where T: Debug + Clone,

Source§

fn with_cached_task<T>( self, task: impl FnOnce() -> T, ) -> (T, <DbInterner<'db> as Interner>::DepNodeIndex)

Source§

fn with_global_cache<R>( self, f: impl FnOnce(&mut GlobalCache<DbInterner<'db>>) -> R, ) -> R

Source§

fn canonical_param_env_cache_get_or_insert<R>( self, _param_env: <DbInterner<'db> as Interner>::ParamEnv, f: impl FnOnce() -> CanonicalParamEnvCacheEntry<DbInterner<'db>>, from_entry: impl FnOnce(&CanonicalParamEnvCacheEntry<DbInterner<'db>>) -> R, ) -> R

Source§

fn assert_evaluation_is_concurrent(&self)

Useful for testing. If a cache entry is replaced, this should (in theory) only happen when concurrent.
Source§

fn expand_abstract_consts<T>(self, _: T) -> T
where T: TypeFoldable<DbInterner<'db>>,

Source§

fn generics_of( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> <DbInterner<'db> as Interner>::GenericsOf

Source§

fn variances_of( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> <DbInterner<'db> as Interner>::VariancesOf

Source§

fn type_of( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> EarlyBinder<DbInterner<'db>, <DbInterner<'db> as Interner>::Ty>

Source§

fn adt_def( self, def_id: <DbInterner<'db> as Interner>::AdtId, ) -> <DbInterner<'db> as Interner>::AdtDef

Source§

fn alias_term_kind_from_def_id( self, def_id: SolverDefId<'db>, ) -> AliasTermKind<DbInterner<'db>>

Source§

fn trait_ref_and_own_args_for_alias( self, def_id: <DbInterner<'db> as Interner>::TraitAssocTermId, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> (TraitRef<DbInterner<'db>>, <DbInterner<'db> as Interner>::GenericArgsSlice)

Source§

fn check_args_compatible( self, def_id: <DbInterner<'db> as Interner>::DefId, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> bool

Source§

fn debug_assert_args_compatible( self, _def_id: <DbInterner<'db> as Interner>::DefId, _args: <DbInterner<'db> as Interner>::GenericArgs, )

Source§

fn debug_assert_existential_args_compatible( self, _def_id: <DbInterner<'db> as Interner>::DefId, _args: <DbInterner<'db> as Interner>::GenericArgs, )

Assert that the args from an ExistentialTraitRef or ExistentialProjection are compatible with the DefId.
Source§

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

Source§

fn projection_parent( self, def_id: <DbInterner<'db> as Interner>::TraitAssocTermId, ) -> <DbInterner<'db> as Interner>::TraitId

Source§

fn impl_or_trait_assoc_term_parent( self, def_id: <DbInterner<'db> as Interner>::ImplOrTraitAssocTermId, ) -> <DbInterner<'db> as Interner>::DefId

This can be an impl, or a trait if this is a defaulted term.
Source§

fn inherent_alias_term_parent( self, def_id: <DbInterner<'db> as Interner>::InherentAssocTermId, ) -> <DbInterner<'db> as Interner>::ImplId

Source§

fn recursion_limit(self) -> usize

Source§

fn is_type_const(self, _def_id: <DbInterner<'db> as Interner>::DefId) -> bool

Source§

fn features(self) -> Features

Source§

fn fn_sig( self, def_id: <DbInterner<'db> as Interner>::FunctionId, ) -> EarlyBinder<DbInterner<'db>, Binder<DbInterner<'db>, FnSig<DbInterner<'db>>>>

Source§

fn coroutine_movability( self, def_id: <DbInterner<'db> as Interner>::CoroutineId, ) -> Movability

Source§

fn coroutine_for_closure( self, def_id: <DbInterner<'db> as Interner>::CoroutineClosureId, ) -> <DbInterner<'db> as Interner>::CoroutineId

Source§

fn generics_require_sized_self( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> bool

Source§

fn item_bounds( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = <DbInterner<'db> as Interner>::Clause>>

Source§

fn item_self_bounds( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = <DbInterner<'db> as Interner>::Clause>>

Source§

fn item_non_self_bounds( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = <DbInterner<'db> as Interner>::Clause>>

Source§

fn predicates_of( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = <DbInterner<'db> as Interner>::Clause>>

Source§

fn own_predicates_of( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = <DbInterner<'db> as Interner>::Clause>>

Source§

fn explicit_super_predicates_of( self, def_id: <DbInterner<'db> as Interner>::TraitId, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = (<DbInterner<'db> as Interner>::Clause, <DbInterner<'db> as Interner>::Span)>>

Source§

fn explicit_implied_predicates_of( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = (<DbInterner<'db> as Interner>::Clause, <DbInterner<'db> as Interner>::Span)>>

Source§

fn impl_super_outlives( self, impl_id: <DbInterner<'db> as Interner>::ImplId, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = <DbInterner<'db> as Interner>::Clause>>

This is equivalent to computing the super-predicates of the trait for this impl and filtering them to the outlives predicates. This is purely for performance.
Source§

fn const_conditions( self, _def_id: <DbInterner<'db> as Interner>::DefId, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>>>

Source§

fn has_target_features( self, _def_id: <DbInterner<'db> as Interner>::FunctionId, ) -> bool

Source§

fn require_projection_lang_item( self, lang_item: SolverProjectionLangItem, ) -> <DbInterner<'db> as Interner>::TraitAssocTyId

Source§

fn require_trait_lang_item( self, lang_item: SolverTraitLangItem, ) -> TraitIdWrapper

Source§

fn require_adt_lang_item(self, lang_item: SolverAdtLangItem) -> AdtIdWrapper

Source§

fn is_projection_lang_item( self, def_id: <DbInterner<'db> as Interner>::TraitAssocTyId, lang_item: SolverProjectionLangItem, ) -> bool

Source§

fn is_trait_lang_item( self, def_id: <DbInterner<'db> as Interner>::TraitId, lang_item: SolverTraitLangItem, ) -> bool

Source§

fn is_adt_lang_item( self, def_id: <DbInterner<'db> as Interner>::AdtId, lang_item: SolverAdtLangItem, ) -> bool

Source§

fn as_projection_lang_item( self, def_id: <DbInterner<'db> as Interner>::TraitAssocTyId, ) -> Option<SolverProjectionLangItem>

Source§

fn as_trait_lang_item( self, def_id: <DbInterner<'db> as Interner>::TraitId, ) -> Option<SolverTraitLangItem>

Source§

fn as_adt_lang_item( self, def_id: <DbInterner<'db> as Interner>::AdtId, ) -> Option<SolverAdtLangItem>

Source§

fn associated_type_def_ids( self, def_id: <DbInterner<'db> as Interner>::TraitId, ) -> impl IntoIterator<Item = <DbInterner<'db> as Interner>::DefId>

Source§

fn for_each_relevant_impl<R>( self, trait_def_id: <DbInterner<'db> as Interner>::TraitId, self_ty: <DbInterner<'db> as Interner>::Ty, f: impl FnMut(<DbInterner<'db> as Interner>::ImplId) -> R, ) -> R
where R: VisitorResult,

Source§

fn for_each_blanket_impl<R>( self, trait_def_id: <DbInterner<'db> as Interner>::TraitId, f: impl FnMut(<DbInterner<'db> as Interner>::ImplId) -> R, ) -> R
where R: VisitorResult,

Source§

fn has_item_definition( self, _def_id: <DbInterner<'db> as Interner>::ImplOrTraitAssocTermId, ) -> bool

Source§

fn impl_is_default( self, impl_def_id: <DbInterner<'db> as Interner>::ImplId, ) -> bool

Source§

fn impl_trait_ref( self, impl_id: <DbInterner<'db> as Interner>::ImplId, ) -> EarlyBinder<DbInterner<'db>, TraitRef<DbInterner<'db>>>

Source§

fn impl_polarity( self, impl_id: <DbInterner<'db> as Interner>::ImplId, ) -> ImplPolarity

Source§

fn trait_is_auto(self, trait_: <DbInterner<'db> as Interner>::TraitId) -> bool

Source§

fn trait_is_alias(self, trait_: <DbInterner<'db> as Interner>::TraitId) -> bool

Source§

fn trait_is_dyn_compatible( self, trait_: <DbInterner<'db> as Interner>::TraitId, ) -> bool

Source§

fn trait_is_fundamental( self, trait_: <DbInterner<'db> as Interner>::TraitId, ) -> bool

Source§

fn is_impl_trait_in_trait( self, _def_id: <DbInterner<'db> as Interner>::DefId, ) -> bool

Source§

fn delay_bug( self, _msg: impl ToString, ) -> <DbInterner<'db> as Interner>::ErrorGuaranteed

Source§

fn is_general_coroutine( self, def_id: <DbInterner<'db> as Interner>::CoroutineId, ) -> bool

Source§

fn coroutine_is_async( self, def_id: <DbInterner<'db> as Interner>::CoroutineId, ) -> bool

Source§

fn coroutine_is_gen( self, def_id: <DbInterner<'db> as Interner>::CoroutineId, ) -> bool

Source§

fn coroutine_is_async_gen( self, def_id: <DbInterner<'db> as Interner>::CoroutineId, ) -> bool

Source§

fn unsizing_params_for_adt( self, id: <DbInterner<'db> as Interner>::AdtId, ) -> <DbInterner<'db> as Interner>::UnsizingParams

Source§

fn anonymize_bound_vars<T>( self, value: Binder<DbInterner<'db>, T>, ) -> Binder<DbInterner<'db>, T>
where T: TypeFoldable<DbInterner<'db>>,

Source§

fn opaque_types_defined_by( self, def_id: <DbInterner<'db> as Interner>::LocalDefId, ) -> <DbInterner<'db> as Interner>::LocalDefIds

Source§

fn opaque_types_and_coroutines_defined_by( self, def_id: <DbInterner<'db> as Interner>::LocalDefId, ) -> <DbInterner<'db> as Interner>::LocalDefIds

Source§

fn alias_has_const_conditions( self, _def_id: <DbInterner<'db> as Interner>::DefId, ) -> bool

Source§

fn explicit_implied_const_bounds( self, _def_id: <DbInterner<'db> as Interner>::DefId, ) -> EarlyBinder<DbInterner<'db>, impl IntoIterator<Item = Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>>>

Source§

fn fn_is_const(self, id: <DbInterner<'db> as Interner>::FunctionId) -> bool

Source§

fn impl_is_const(self, _def_id: <DbInterner<'db> as Interner>::ImplId) -> bool

Source§

fn opt_alias_variances( self, _kind: impl Into<AliasTermKind<DbInterner<'db>>>, ) -> Option<<DbInterner<'db> as Interner>::VariancesOf>

Source§

fn type_of_opaque_hir_typeck( self, opaque: <DbInterner<'db> as Interner>::LocalOpaqueTyId, ) -> EarlyBinder<DbInterner<'db>, <DbInterner<'db> as Interner>::Ty>

Source§

fn coroutine_hidden_types( self, _def_id: <DbInterner<'db> as Interner>::CoroutineId, ) -> EarlyBinder<DbInterner<'db>, Binder<DbInterner<'db>, CoroutineWitnessTypes<DbInterner<'db>>>>

Source§

fn is_default_trait( self, def_id: <DbInterner<'db> as Interner>::TraitId, ) -> bool

Source§

fn trait_is_coinductive( self, trait_: <DbInterner<'db> as Interner>::TraitId, ) -> bool

Source§

fn trait_is_unsafe(self, trait_: <DbInterner<'db> as Interner>::TraitId) -> bool

Returns true if this is an unsafe trait.
Source§

fn impl_self_is_guaranteed_unsized( self, _def_id: <DbInterner<'db> as Interner>::ImplId, ) -> bool

Source§

fn impl_specializes( self, specializing_impl_def_id: <DbInterner<'db> as Interner>::ImplId, parent_impl_def_id: <DbInterner<'db> as Interner>::ImplId, ) -> bool

Source§

fn next_trait_solver_globally(self) -> bool

Source§

fn mk_probe( self, probe: Probe<DbInterner<'db>>, ) -> <DbInterner<'db> as Interner>::Probe

Source§

fn evaluate_root_goal_for_proof_tree_raw( self, canonical_goal: CanonicalQueryInput<DbInterner<'db>, QueryInput<DbInterner<'db>, <DbInterner<'db> as Interner>::Predicate>>, ) -> (Result<Canonical<DbInterner<'db>, Response<DbInterner<'db>>>, NoSolution>, <DbInterner<'db> as Interner>::Probe)

Source§

fn is_sizedness_trait( self, def_id: <DbInterner<'db> as Interner>::TraitId, ) -> bool

Source§

fn const_of_item( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> EarlyBinder<DbInterner<'db>, <DbInterner<'db> as Interner>::Const>

Source§

fn anon_const_kind( self, _def_id: <DbInterner<'db> as Interner>::DefId, ) -> AnonConstKind

Source§

fn alias_ty_kind_from_def_id( self, def_id: <DbInterner<'db> as Interner>::DefId, ) -> AliasTyKind<DbInterner<'db>>

Source§

fn closure_is_const( self, _def_id: <DbInterner<'db> as Interner>::ClosureId, ) -> bool

Source§

fn item_name( self, _item_index: <DbInterner<'db> as Interner>::DefId, ) -> <DbInterner<'db> as Interner>::Symbol

Source§

impl<'db> IrPrint<AliasTerm<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &AliasTerm<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &AliasTerm<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<AliasTy<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &AliasTy<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &AliasTy<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<CoercePredicate<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &CoercePredicate<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &CoercePredicate<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<ExistentialProjection<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &ExistentialProjection<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &ExistentialProjection<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<ExistentialTraitRef<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &ExistentialTraitRef<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &ExistentialTraitRef<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<FnSig<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &FnSig<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &FnSig<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<HostEffectPredicate<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &HostEffectPredicate<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &HostEffectPredicate<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<NormalizesTo<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &NormalizesTo<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &NormalizesTo<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<PatternKind<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &PatternKind<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &PatternKind<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<ProjectionPredicate<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &ProjectionPredicate<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &ProjectionPredicate<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<SubtypePredicate<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &SubtypePredicate<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &SubtypePredicate<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<TraitPredicate<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &TraitPredicate<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &TraitPredicate<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> IrPrint<TraitRef<DbInterner<'db>>> for DbInterner<'db>

Source§

fn print( t: &TraitRef<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

fn print_debug( t: &TraitRef<DbInterner<'db>>, fmt: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<'db> ParamEnv<DbInterner<'db>> for ParamEnv<'db>

Source§

fn caller_bounds(self) -> impl SliceLike<Item = Clause<'db>>

Source§

impl<'db> Predicate<DbInterner<'db>> for Predicate<'db>

Source§

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>

Source§

fn new_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundRegion<DbInterner<'db>>, ) -> Region<'db>

Source§

fn new_anon_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundVar, ) -> Region<'db>

Source§

fn new_canonical_bound(interner: DbInterner<'db>, var: BoundVar) -> Region<'db>

Source§

fn new_static(interner: DbInterner<'db>) -> Region<'db>

Source§

fn new_placeholder( interner: DbInterner<'db>, var: Placeholder<DbInterner<'db>, BoundRegion<DbInterner<'db>>>, ) -> Region<'db>

§

fn is_bound(self) -> bool

Source§

impl<'db> Relate<DbInterner<'db>> for Safety

Source§

fn relate<R>( _relation: &mut R, a: Safety, b: Safety, ) -> Result<Safety, TypeError<DbInterner<'db>>>
where R: TypeRelation<DbInterner<'db>>,

Source§

impl<'db> Relate<DbInterner<'db>> for ExternAbi

Source§

fn relate<R>( _relation: &mut R, a: ExternAbi, b: ExternAbi, ) -> Result<ExternAbi, TypeError<DbInterner<'db>>>
where R: TypeRelation<DbInterner<'db>>,

Source§

impl<'db> Relate<DbInterner<'db>> for Const<'db>

Source§

fn relate<R>( relation: &mut R, a: Const<'db>, b: Const<'db>, ) -> Result<Const<'db>, TypeError<DbInterner<'db>>>
where R: TypeRelation<DbInterner<'db>>,

Source§

impl<'db> Relate<DbInterner<'db>> for ExprConst

Source§

fn relate<R>( _relation: &mut R, a: ExprConst, b: ExprConst, ) -> Result<ExprConst, TypeError<DbInterner<'db>>>
where R: TypeRelation<DbInterner<'db>>,

Source§

impl<'db> Relate<DbInterner<'db>> for GenericArg<'db>

Source§

fn relate<R>( relation: &mut R, a: GenericArg<'db>, b: GenericArg<'db>, ) -> Result<GenericArg<'db>, TypeError<DbInterner<'db>>>
where R: TypeRelation<DbInterner<'db>>,

Source§

impl<'db> Relate<DbInterner<'db>> for GenericArgs<'db>

Source§

fn relate<R>( relation: &mut R, a: GenericArgs<'db>, b: GenericArgs<'db>, ) -> Result<GenericArgs<'db>, TypeError<DbInterner<'db>>>
where R: TypeRelation<DbInterner<'db>>,

Source§

impl<'db> Relate<DbInterner<'db>> for Term<'db>

Source§

fn relate<R>( relation: &mut R, a: Term<'db>, b: Term<'db>, ) -> Result<Term<'db>, TypeError<DbInterner<'db>>>
where R: TypeRelation<DbInterner<'db>>,

Source§

impl<'db> Relate<DbInterner<'db>> for Pattern<'db>

Source§

fn relate<R>( relation: &mut R, a: Pattern<'db>, b: Pattern<'db>, ) -> Result<Pattern<'db>, TypeError<DbInterner<'db>>>
where R: TypeRelation<DbInterner<'db>>,

Source§

impl<'db> Relate<DbInterner<'db>> for BoundExistentialPredicates<'db>

Source§

impl<'db> Relate<DbInterner<'db>> for Region<'db>

Source§

fn relate<R>( relation: &mut R, a: Region<'db>, b: Region<'db>, ) -> Result<Region<'db>, TypeError<DbInterner<'db>>>
where R: TypeRelation<DbInterner<'db>>,

Source§

impl<'db> Relate<DbInterner<'db>> for Ty<'db>

Source§

fn relate<R>( relation: &mut R, a: Ty<'db>, b: Ty<'db>, ) -> Result<Ty<'db>, TypeError<DbInterner<'db>>>
where R: TypeRelation<DbInterner<'db>>,

Source§

impl<'db> Safety<DbInterner<'db>> for Safety

Source§

fn safe() -> Safety

The safe safety mode.
Source§

fn is_safe(self) -> bool

Is the safety mode Safe?
Source§

fn prefix_str(self) -> &'static str

The string prefix for this safety mode.
Source§

fn unsafe_mode() -> Safety

The unsafe safety mode.
Source§

impl Send for DbInterner<'_>

Source§

impl<'db> Span<DbInterner<'db>> for Span

Source§

impl<'db> Symbol<DbInterner<'db>> for Symbol

Source§

impl Sync for DbInterner<'_>

Source§

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>

Source§

fn new_unit(interner: DbInterner<'db>) -> Ty<'db>

Source§

fn new_bool(interner: DbInterner<'db>) -> Ty<'db>

Source§

fn new_u8(interner: DbInterner<'db>) -> Ty<'db>

Source§

fn new_usize(interner: DbInterner<'db>) -> Ty<'db>

Source§

fn new_infer(interner: DbInterner<'db>, var: InferTy) -> Ty<'db>

Source§

fn new_var(interner: DbInterner<'db>, var: TyVid) -> Ty<'db>

Source§

fn new_param(interner: DbInterner<'db>, param: ParamTy) -> Ty<'db>

Source§

fn new_placeholder( interner: DbInterner<'db>, param: Placeholder<DbInterner<'db>, BoundTy<DbInterner<'db>>>, ) -> Ty<'db>

Source§

fn new_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundTy<DbInterner<'db>>, ) -> Ty<'db>

Source§

fn new_anon_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundVar, ) -> Ty<'db>

Source§

fn new_canonical_bound(interner: DbInterner<'db>, var: BoundVar) -> Ty<'db>

Source§

fn new_alias( interner: DbInterner<'db>, alias_ty: AliasTy<DbInterner<'db>>, ) -> Ty<'db>

Source§

fn new_error(interner: DbInterner<'db>, guar: ErrorGuaranteed) -> Ty<'db>

Source§

fn new_adt( interner: DbInterner<'db>, adt_def: <DbInterner<'db> as Interner>::AdtDef, args: GenericArgs<'db>, ) -> Ty<'db>

Source§

fn new_foreign(interner: DbInterner<'db>, def_id: TypeAliasIdWrapper) -> Ty<'db>

Source§

fn new_dynamic( interner: DbInterner<'db>, preds: <DbInterner<'db> as Interner>::BoundExistentialPredicates, region: <DbInterner<'db> as Interner>::Region, ) -> Ty<'db>

Source§

fn new_coroutine( interner: DbInterner<'db>, def_id: CoroutineIdWrapper<'db>, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Ty<'db>

Source§

fn new_coroutine_closure( interner: DbInterner<'db>, def_id: CoroutineClosureIdWrapper<'db>, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Ty<'db>

Source§

fn new_closure( interner: DbInterner<'db>, def_id: ClosureIdWrapper<'db>, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Ty<'db>

Source§

fn new_coroutine_witness( interner: DbInterner<'db>, def_id: CoroutineIdWrapper<'db>, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Ty<'db>

Source§

fn new_coroutine_witness_for_coroutine( interner: DbInterner<'db>, def_id: CoroutineIdWrapper<'db>, coroutine_args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Ty<'db>

Source§

fn new_ptr(interner: DbInterner<'db>, ty: Ty<'db>, mutbl: Mutability) -> Ty<'db>

Source§

fn new_ref( interner: DbInterner<'db>, region: <DbInterner<'db> as Interner>::Region, ty: Ty<'db>, mutbl: Mutability, ) -> Ty<'db>

Source§

fn new_array_with_const_len( interner: DbInterner<'db>, ty: Ty<'db>, len: <DbInterner<'db> as Interner>::Const, ) -> Ty<'db>

Source§

fn new_slice(interner: DbInterner<'db>, ty: Ty<'db>) -> Ty<'db>

Source§

fn new_tup( interner: DbInterner<'db>, tys: &[<DbInterner<'db> as Interner>::Ty], ) -> Ty<'db>

Source§

fn new_tup_from_iter<It, T>( interner: DbInterner<'db>, iter: It, ) -> <T as CollectAndApply<Ty<'db>, Ty<'db>>>::Output
where It: Iterator<Item = T>, T: CollectAndApply<Ty<'db>, Ty<'db>>,

Source§

fn new_fn_def( interner: DbInterner<'db>, def_id: CallableIdWrapper, args: <DbInterner<'db> as Interner>::GenericArgs, ) -> Ty<'db>

Source§

fn new_fn_ptr( interner: DbInterner<'db>, sig: Binder<DbInterner<'db>, FnSig<DbInterner<'db>>>, ) -> Ty<'db>

Source§

fn new_pat( interner: DbInterner<'db>, ty: Ty<'db>, pat: <DbInterner<'db> as Interner>::Pat, ) -> Ty<'db>

Source§

fn new_unsafe_binder( interner: DbInterner<'db>, ty: Binder<DbInterner<'db>, <DbInterner<'db> as Interner>::Ty>, ) -> Ty<'db>

Source§

fn tuple_fields(self) -> <DbInterner<'db> as Interner>::Tys

Source§

fn to_opt_closure_kind(self) -> Option<ClosureKind>

Source§

fn from_closure_kind(interner: DbInterner<'db>, kind: ClosureKind) -> Ty<'db>

Source§

fn from_coroutine_closure_kind( interner: DbInterner<'db>, kind: ClosureKind, ) -> Ty<'db>

Source§

fn has_unsafe_fields(self) -> bool

Checks whether this type is an ADT that has unsafe fields.
Source§

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
where <impl IntoIterator as IntoIterator>::Item: Into<<I as Interner>::GenericArg>,

§

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 Projection

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Projection, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Projection
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Place

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Place, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Place
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for InferenceDiagnostic

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<InferenceDiagnostic, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> InferenceDiagnostic
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for StoredFnSig

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<StoredFnSig, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> StoredFnSig
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for StoredTraitRef

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<StoredTraitRef, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> StoredTraitRef
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ValueConst<'db>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ValueConst<'db>, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ValueConst<'db>
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ValTree<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<ValTree<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> ValTree<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ExprConst

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ExprConst, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ExprConst
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Const<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Const<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> Const<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Consts<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Consts<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> Consts<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for StoredGenericArg

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<StoredGenericArg, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> StoredGenericArg
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for GenericArg<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<GenericArg<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> GenericArg<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Term<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Term<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> Term<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for GenericArgs<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<GenericArgs<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> GenericArgs<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for StoredGenericArgs

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<StoredGenericArgs, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> StoredGenericArgs
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db, R> TypeFoldable<DbInterner<'db>> for QueryResponse<'db, R>
where R: TypeFoldable<DbInterner<'db>>,

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<QueryResponse<'db, R>, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> QueryResponse<'db, R>
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for QueryRegionConstraints<'db>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<QueryRegionConstraints<'db>, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> QueryRegionConstraints<'db>
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for OpaqueHiddenType<'db>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<OpaqueHiddenType<'db>, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> OpaqueHiddenType<'db>
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ObligationCause

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ObligationCause, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ObligationCause
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db, T> TypeFoldable<DbInterner<'db>> for Obligation<'db, T>
where T: TypeFoldable<DbInterner<'db>>,

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Obligation<'db, T>, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Obligation<'db, T>
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Pattern<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Pattern<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> Pattern<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for PatList<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<PatList<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> PatList<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for SolverDefId<'_>

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<SolverDefId<'_>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> SolverDefId<'_>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for TraitIdWrapper

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<TraitIdWrapper, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> TraitIdWrapper
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for TypeAliasIdWrapper

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<TypeAliasIdWrapper, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> TypeAliasIdWrapper
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for CallableIdWrapper

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<CallableIdWrapper, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> CallableIdWrapper
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ClosureIdWrapper<'_>

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<ClosureIdWrapper<'_>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> ClosureIdWrapper<'_>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for CoroutineIdWrapper<'_>

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<CoroutineIdWrapper<'_>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> CoroutineIdWrapper<'_>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for CoroutineClosureIdWrapper<'_>

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<CoroutineClosureIdWrapper<'_>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> CoroutineClosureIdWrapper<'_>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for AdtIdWrapper

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<AdtIdWrapper, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> AdtIdWrapper
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for TraitAssocTyId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<TraitAssocTyId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> TraitAssocTyId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for TraitAssocConstId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<TraitAssocConstId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> TraitAssocConstId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for TraitAssocTermId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<TraitAssocTermId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> TraitAssocTermId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ImplOrTraitAssocTyId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<ImplOrTraitAssocTyId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> ImplOrTraitAssocTyId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ImplOrTraitAssocConstId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<ImplOrTraitAssocConstId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> ImplOrTraitAssocConstId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ImplOrTraitAssocTermId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<ImplOrTraitAssocTermId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> ImplOrTraitAssocTermId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for FreeTyAliasId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<FreeTyAliasId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> FreeTyAliasId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for FreeConstAliasId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<FreeConstAliasId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> FreeConstAliasId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for FreeTermAliasId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<FreeTermAliasId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> FreeTermAliasId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for InherentAssocTyId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<InherentAssocTyId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> InherentAssocTyId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for InherentAssocConstId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<InherentAssocConstId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> InherentAssocConstId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for InherentAssocTermId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<InherentAssocTermId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> InherentAssocTermId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for OpaqueTyIdWrapper<'_>

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<OpaqueTyIdWrapper<'_>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> OpaqueTyIdWrapper<'_>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for AnyImplId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<AnyImplId, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> AnyImplId
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for GeneralConstIdWrapper<'_>

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<GeneralConstIdWrapper<'_>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> GeneralConstIdWrapper<'_>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Safety

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<Safety, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> Safety
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Span

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<Span, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> Span
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ParamConst

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<ParamConst, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> ParamConst
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ParamTy

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<ParamTy, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> ParamTy
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for EarlyParamRegion

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<EarlyParamRegion, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> EarlyParamRegion
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for AdtDef

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<AdtDef, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> AdtDef
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ScalarInt

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<ScalarInt, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _: &mut F) -> ScalarInt
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for PredefinedOpaques<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<PredefinedOpaques<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> PredefinedOpaques<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for SolverDefIds<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<SolverDefIds<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> SolverDefIds<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ExternalConstraints<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<ExternalConstraints<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> ExternalConstraints<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for BoundExistentialPredicates<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<BoundExistentialPredicates<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> BoundExistentialPredicates<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Clauses<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Clauses<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> Clauses<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ParamEnv<'db>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ParamEnv<'db>, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ParamEnv<'db>
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Predicate<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Predicate<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> Predicate<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Clause<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Clause<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> Clause<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Region<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Region<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> Region<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for RegionAssumptions<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<RegionAssumptions<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> RegionAssumptions<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for StoredTy

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<StoredTy, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> StoredTy
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Ty<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Ty<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> Ty<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for Tys<'db>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Tys<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> Tys<'db>
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for StoredTys

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<StoredTys, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, folder: &mut F) -> StoredTys
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for ErrorGuaranteed

Source§

fn try_fold_with<F>( self, _folder: &mut F, ) -> Result<ErrorGuaranteed, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<F>(self, _folder: &mut F) -> ErrorGuaranteed
where F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for PlaceTy<'db>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<PlaceTy<'db>, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> PlaceTy<'db>
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for SolverDiagnostic

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<SolverDiagnostic, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> SolverDiagnostic
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for SolverDiagnosticKind

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<SolverDiagnosticKind, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> SolverDiagnosticKind
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'db> TypeFoldable<DbInterner<'db>> for StoredTraitPredicate

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<StoredTraitPredicate, <__F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where __F: FallibleTypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f). Read more
Source§

fn fold_with<__F>(self, __folder: &mut __F) -> StoredTraitPredicate
where __F: TypeFolder<DbInterner<'db>>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
Source§

impl<'a, 'db> TypeFolder<DbInterner<'db>> for OpportunisticVarResolver<'a, 'db>

Source§

fn cx(&self) -> DbInterner<'db>

Source§

fn fold_ty(&mut self, t: Ty<'db>) -> Ty<'db>

Source§

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 ReplaceInferWithError<'db>

Source§

fn cx(&self) -> DbInterner<'db>

Source§

fn fold_ty(&mut self, t: Ty<'db>) -> Ty<'db>

Source§

fn fold_const(&mut self, c: Const<'db>) -> Const<'db>

Source§

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, F, G, H> TypeFolder<DbInterner<'db>> for BottomUpFolder<'db, F, G, H>
where F: FnMut(Ty<'db>) -> Ty<'db>, G: FnMut(Region<'db>) -> Region<'db>, H: FnMut(Const<'db>) -> Const<'db>,

Source§

fn cx(&self) -> DbInterner<'db>

Source§

fn fold_ty(&mut self, ty: Ty<'db>) -> Ty<'db>

Source§

fn fold_region(&mut self, r: Region<'db>) -> Region<'db>

Source§

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> TypeFolder<DbInterner<'db>> for PlaceholderReplacer<'_, 'db>

Source§

fn cx(&self) -> DbInterner<'db>

Source§

fn fold_binder<T>( &mut self, t: Binder<DbInterner<'db>, T>, ) -> Binder<DbInterner<'db>, T>
where T: TypeFoldable<DbInterner<'db>>,

Source§

fn fold_region(&mut self, r0: Region<'db>) -> Region<'db>

Source§

fn fold_ty(&mut self, ty: Ty<'db>) -> Ty<'db>

Source§

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> TypeSuperFoldable<DbInterner<'db>> for Const<'db>

Source§

fn try_super_fold_with<F>( self, folder: &mut F, ) -> Result<Const<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

Provides a default fold for a recursive type of interest. This should only be called within 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>(self, folder: &mut F) -> Const<'db>
where F: TypeFolder<DbInterner<'db>>,

A convenient alternative to 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 Clauses<'db>

Source§

fn try_super_fold_with<F>( self, folder: &mut F, ) -> Result<Clauses<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

Provides a default fold for a recursive type of interest. This should only be called within 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>(self, folder: &mut F) -> Clauses<'db>
where F: TypeFolder<DbInterner<'db>>,

A convenient alternative to 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>

Source§

fn try_super_fold_with<F>( self, folder: &mut F, ) -> Result<Predicate<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

Provides a default fold for a recursive type of interest. This should only be called within 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>(self, folder: &mut F) -> Predicate<'db>
where F: TypeFolder<DbInterner<'db>>,

A convenient alternative to 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>

Source§

fn try_super_fold_with<F>( self, folder: &mut F, ) -> Result<Ty<'db>, <F as FallibleTypeFolder<DbInterner<'db>>>::Error>
where F: FallibleTypeFolder<DbInterner<'db>>,

Provides a default fold for a recursive type of interest. This should only be called within 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>(self, folder: &mut F) -> Ty<'db>
where F: TypeFolder<DbInterner<'db>>,

A convenient alternative to 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 Const<'db>

Source§

fn super_visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

Provides a default visit for a recursive type of interest. This should only be called within 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 Clauses<'db>

Source§

fn super_visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

Provides a default visit for a recursive type of interest. This should only be called within 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>

Source§

fn super_visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

Provides a default visit for a recursive type of interest. This should only be called within 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>

Source§

fn super_visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

Provides a default visit for a recursive type of interest. This should only be called within 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 Projection

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Place

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for InferenceDiagnostic

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for StoredFnSig

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for StoredTraitRef

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ValueConst<'db>

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ValTree<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ExprConst

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Const<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Consts<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for StoredGenericArg

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for GenericArg<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Term<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for GenericArgs<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for StoredGenericArgs

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db, R> TypeVisitable<DbInterner<'db>> for QueryResponse<'db, R>
where R: TypeVisitable<DbInterner<'db>>,

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for QueryRegionConstraints<'db>

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for OpaqueHiddenType<'db>

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ObligationCause

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db, T> TypeVisitable<DbInterner<'db>> for Obligation<'db, T>
where T: TypeVisitable<DbInterner<'db>>,

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Pattern<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for PatList<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for SolverDefId<'_>

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for TraitIdWrapper

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for TypeAliasIdWrapper

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for CallableIdWrapper

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ClosureIdWrapper<'_>

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for CoroutineIdWrapper<'_>

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for CoroutineClosureIdWrapper<'_>

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for AdtIdWrapper

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for TraitAssocTyId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for TraitAssocConstId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for TraitAssocTermId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ImplOrTraitAssocTyId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ImplOrTraitAssocConstId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ImplOrTraitAssocTermId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for FreeTyAliasId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for FreeConstAliasId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for FreeTermAliasId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for InherentAssocTyId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for InherentAssocConstId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for InherentAssocTermId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for OpaqueTyIdWrapper<'_>

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for AnyImplId

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for GeneralConstIdWrapper<'_>

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Safety

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Span

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ParamConst

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ParamTy

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for EarlyParamRegion

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for AdtDef

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ScalarInt

Source§

fn visit_with<F>( &self, _: &mut F, ) -> <F as TypeVisitor<DbInterner<'db>>>::Result
where F: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for PredefinedOpaques<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for SolverDefIds<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ExternalConstraints<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for BoundExistentialPredicates<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Clauses<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ParamEnv<'db>

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Predicate<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Clause<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Region<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for RegionAssumptions<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for StoredTy

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Ty<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for Tys<'db>

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for StoredTys

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for ErrorGuaranteed

Source§

fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<DbInterner<'db>>>::Result
where V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for PlaceTy<'db>

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for SolverDiagnostic

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for SolverDiagnosticKind

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitable<DbInterner<'db>> for StoredTraitPredicate

Source§

fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<DbInterner<'db>>>::Result
where __V: TypeVisitor<DbInterner<'db>>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v). Read more
Source§

impl<'db> TypeVisitor<DbInterner<'db>> for StalledOnCoroutines<'_, 'db>

Source§

type Result = ControlFlow<()>

Source§

fn visit_ty( &mut self, ty: Ty<'db>, ) -> <StalledOnCoroutines<'_, 'db> as TypeVisitor<DbInterner<'db>>>::Result

§

fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Result
where 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

Source§

type Result = ()

Source§

fn visit_ty(&mut self, t: Ty<'db>)

Source§

fn visit_const(&mut self, c: Const<'db>)

Source§

fn visit_region(&mut self, r: Region<'db>)

§

fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Result
where 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 ContainsTypeErrors

Source§

type Result = ControlFlow<()>

Source§

fn visit_ty( &mut self, t: Ty<'db>, ) -> <ContainsTypeErrors as TypeVisitor<DbInterner<'db>>>::Result

§

fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Result
where 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>

Source§

fn inputs(self) -> <DbInterner<'db> as Interner>::FnInputTys

Source§

fn output(self) -> <DbInterner<'db> as Interner>::Ty

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>> for Clause<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Clause<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>>, tcx: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, PredicateKind<DbInterner<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, PredicateKind<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>> for Clause<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Clause<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>> for Clause<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Clause<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>> for Clause<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Clause<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Clause<'db>> for Predicate<'db>

Source§

fn upcast_from(from: Clause<'db>, _interner: DbInterner<'db>) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, ClauseKind<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: ClauseKind<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, NormalizesTo<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: NormalizesTo<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Region<'db>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>> for Clause<'db>

Source§

fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Region<'db>>, interner: DbInterner<'db>, ) -> Clause<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Ty<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Ty<'db>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Ty<'db>>> for Clause<'db>

Source§

fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Ty<'db>>, interner: DbInterner<'db>, ) -> Clause<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, PredicateKind<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: PredicateKind<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: ProjectionPredicate<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>> for Clause<'db>

Source§

fn upcast_from( from: ProjectionPredicate<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Clause<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, TraitPredicate<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: TraitPredicate<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, TraitPredicate<DbInterner<'db>>> for Clause<'db>

Source§

fn upcast_from( from: TraitPredicate<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Clause<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, TraitRef<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: TraitRef<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Predicate<'db>

Source§

impl<'db> UpcastFrom<DbInterner<'db>, TraitRef<DbInterner<'db>>> for Clause<'db>

Source§

fn upcast_from( from: TraitRef<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Clause<'db>

Source§

impl<'db> ValueConst<DbInterner<'db>> for ValueConst<'db>

Source§

fn ty(self) -> Ty<'db>

Source§

fn valtree(self) -> ValTree<'db>

Auto Trait Implementations§

§

impl<'db> !RefUnwindSafe for DbInterner<'db>

§

impl<'db> !UnwindSafe for DbInterner<'db>

§

impl<'db> Freeze for DbInterner<'db>

§

impl<'db> Unpin for DbInterner<'db>

§

impl<'db> UnsafeUnpin for DbInterner<'db>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T, R> CollectAndApply<T, R> for T

§

fn collect_and_apply<I, F>(iter: I, f: F) -> R
where I: Iterator<Item = T>, F: FnOnce(&[T]) -> R,

Equivalent to f(&iter.collect::<Vec<_>>()).

§

type Output = R

§

impl<I> Cx for I
where 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>
where T: Debug + Clone,

§

fn get_tracked<T>(self, tracked: &<I as Interner>::Tracked<T>) -> T
where T: Debug + Clone,

§

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)

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> IntoBox<dyn Any + Send + Sync> for T
where T: Any + Send + Sync,

§

fn into_box(self) -> Box<dyn Any + Send + Sync>

Convert self into the appropriate boxed form.
§

impl<T> IntoBox<dyn Any + Send> for T
where T: Any + Send,

§

fn into_box(self) -> Box<dyn Any + Send>

Convert self into the appropriate boxed form.
§

impl<T> IntoBox<dyn Any> for T
where T: Any,

§

fn into_box(self) -> Box<dyn Any>

Convert self into the appropriate boxed form.
Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> Lookup<T> for T

§

fn into_owned(self) -> T

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<I, T, U> Upcast<I, U> for T
where U: UpcastFrom<I, T>,

§

fn upcast(self, interner: I) -> U

§

impl<I, T> UpcastFrom<I, T> for T

§

fn upcast_from(from: T, _tcx: I) -> T

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more