DbInterner

Struct DbInterner 

Source
pub struct DbInterner<'db> { /* private fields */ }

Implementations§

Source§

impl<'db> DbInterner<'db>

Source

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

Source

pub fn instantiate_bound_regions_with_erased<T>( self, value: Binder<'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§

impl<'db> DbInterner<'db>

Source

pub fn conjure() -> DbInterner<'db>

Source

pub fn new_no_crate(db: &'db dyn HirDatabase) -> Self

Creates a new interner without an active crate. Good only for interning things, not for trait solving etc.. As a rule of thumb, when you create an InferCtxt, you need to provide the crate (and the block).

Elaboration is a special kind: it needs lang items (for Sized), therefore it needs new_with().

Source

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

Source

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

Source

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

Source§

impl<'db> DbInterner<'db>

Source

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

Source

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

Source

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

Source

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

Trait Implementations§

Source§

impl<'db> Abi<DbInterner<'db>> for FnAbi

Source§

fn rust() -> Self

Source§

fn is_rust(self) -> bool

Whether this ABI is extern "Rust".
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_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 is_manually_drop(self) -> bool

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

Source§

fn var(self) -> BoundVar

Source§

fn assert_eq(self, var: BoundVarKind)

Source§

impl<'db> BoundVarLike<DbInterner<'db>> for BoundRegion

Source§

fn var(self) -> BoundVar

Source§

fn assert_eq(self, var: BoundVarKind)

Source§

impl<'db> BoundVarLike<DbInterner<'db>> for BoundTy

Source§

fn var(self) -> BoundVar

Source§

fn assert_eq(self, var: BoundVarKind)

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>>>, ) -> Self

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

Source§

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

Returns a duplicate of the value. Read more
1.0.0 · 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) -> Self

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn new_placeholder( interner: DbInterner<'db>, param: <DbInterner<'db> as Interner>::PlaceholderConst, ) -> Self

Source§

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

Source§

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

Source§

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

§

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

§

fn is_ct_var(self) -> bool

§

fn is_ct_error(self) -> bool

Source§

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

Source§

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

Source§

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

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

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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) -> Self

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, ) -> Self

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) -> Self

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, ) -> Self

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

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

Source§

type LocalDefId = SolverDefId

Source§

type LocalDefIds = SolverDefIds<'db>

Source§

type TraitId = TraitIdWrapper

Source§

type ForeignId = TypeAliasIdWrapper

Source§

type FunctionId = CallableIdWrapper

Source§

type ClosureId = ClosureIdWrapper

Source§

type CoroutineClosureId = CoroutineIdWrapper

Source§

type CoroutineId = CoroutineIdWrapper

Source§

type AdtId = AdtIdWrapper

Source§

type ImplId = ImplIdWrapper

Source§

type UnevaluatedConstId = GeneralConstIdWrapper

Source§

type Span = Span

Source§

type GenericArgs = GenericArgs<'db>

Source§

type GenericArgsSlice = GenericArgs<'db>

Source§

type GenericArg = GenericArg<'db>

Source§

type Term = Term<'db>

Source§

type BoundVarKinds = BoundVarKinds<'db>

Source§

type BoundVarKind = BoundVarKind

Source§

type PredefinedOpaques = PredefinedOpaques<'db>

Source§

type CanonicalVarKinds = CanonicalVars<'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 = Tys<'db>

Source§

type ParamTy = ParamTy

Source§

type BoundTy = BoundTy

Source§

type PlaceholderTy = Placeholder<BoundTy>

Source§

type 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 Abi = FnAbi

Source§

type Const = Const<'db>

Source§

type PlaceholderConst = Placeholder<BoundConst>

Source§

type ParamConst = ParamConst

Source§

type BoundConst = BoundConst

Source§

type ValueConst = ValueConst<'db>

Source§

type ValTree = Valtree<'db>

Source§

type ExprConst = ExprConst

Source§

type Region = Region<'db>

Source§

type EarlyParamRegion = EarlyParamRegion

Source§

type LateParamRegion = LateParamRegion

Source§

type BoundRegion = BoundRegion

Source§

type PlaceholderRegion = Placeholder<BoundRegion>

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

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<'db>, Self::Ty)], ) -> Self::PredefinedOpaques

Source§

fn mk_canonical_var_kinds( self, kinds: &[CanonicalVarKind<Self>], ) -> Self::CanonicalVarKinds

Source§

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

Source§

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

Source§

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

Source§

fn mk_tracked<T: Debug + Clone>( self, data: T, _dep_node: Self::DepNodeIndex, ) -> Self::Tracked<T>

Source§

fn get_tracked<T: Debug + Clone>(self, tracked: &Self::Tracked<T>) -> T

Source§

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

Source§

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

Source§

fn canonical_param_env_cache_get_or_insert<R>( self, _param_env: Self::ParamEnv, f: impl FnOnce() -> CanonicalParamEnvCacheEntry<Self>, from_entry: impl FnOnce(&CanonicalParamEnvCacheEntry<Self>) -> R, ) -> R

Source§

fn assert_evaluation_is_concurrent(&self)

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

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

Source§

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

Source§

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

Source§

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

Source§

fn adt_def(self, def_id: Self::AdtId) -> Self::AdtDef

Source§

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

Source§

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

Source§

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

Source§

fn check_args_compatible( self, _def_id: Self::DefId, _args: Self::GenericArgs, ) -> bool

Source§

fn debug_assert_args_compatible( self, _def_id: Self::DefId, _args: Self::GenericArgs, )

Source§

fn debug_assert_existential_args_compatible( self, _def_id: Self::DefId, _args: Self::GenericArgs, )

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::Output
where I: Iterator<Item = T>, T: CollectAndApply<Self::Ty, Self::Tys>,

Source§

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

Source§

fn recursion_limit(self) -> usize

Source§

fn features(self) -> Self::Features

Source§

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

Source§

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

Source§

fn coroutine_for_closure( self, def_id: Self::CoroutineClosureId, ) -> Self::CoroutineId

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn explicit_super_predicates_of( self, def_id: Self::TraitId, ) -> EarlyBinder<Self, impl IntoIterator<Item = (Self::Clause, Self::Span)>>

Source§

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

Source§

fn impl_super_outlives( self, impl_id: Self::ImplId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Self::Clause>>

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: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Binder<Self, TraitRef<Self>>>>

Source§

fn has_target_features(self, _def_id: Self::FunctionId) -> bool

Source§

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

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_lang_item(self, def_id: Self::DefId, lang_item: SolverLangItem) -> bool

Source§

fn is_trait_lang_item( self, def_id: Self::TraitId, lang_item: SolverTraitLangItem, ) -> bool

Source§

fn is_adt_lang_item( self, def_id: Self::AdtId, lang_item: SolverAdtLangItem, ) -> bool

Source§

fn as_lang_item(self, def_id: Self::DefId) -> Option<SolverLangItem>

Source§

fn as_trait_lang_item( self, def_id: Self::TraitId, ) -> Option<SolverTraitLangItem>

Source§

fn as_adt_lang_item(self, def_id: Self::AdtId) -> Option<SolverAdtLangItem>

Source§

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

Source§

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

Source§

fn for_each_blanket_impl( self, trait_def_id: Self::TraitId, f: impl FnMut(Self::ImplId), )

Source§

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

Source§

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

Source§

fn impl_trait_ref( self, impl_id: Self::ImplId, ) -> EarlyBinder<Self, TraitRef<Self>>

Source§

fn impl_polarity(self, impl_id: Self::ImplId) -> ImplPolarity

Source§

fn trait_is_auto(self, trait_: Self::TraitId) -> bool

Source§

fn trait_is_alias(self, trait_: Self::TraitId) -> bool

Source§

fn trait_is_dyn_compatible(self, trait_: Self::TraitId) -> bool

Source§

fn trait_is_fundamental(self, trait_: Self::TraitId) -> bool

Source§

fn trait_may_be_implemented_via_object( self, _trait_def_id: Self::TraitId, ) -> bool

Source§

fn is_impl_trait_in_trait(self, _def_id: Self::DefId) -> bool

Source§

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

Source§

fn is_general_coroutine(self, def_id: Self::CoroutineId) -> bool

Source§

fn coroutine_is_async(self, def_id: Self::CoroutineId) -> bool

Source§

fn coroutine_is_gen(self, _coroutine_def_id: Self::CoroutineId) -> bool

Source§

fn coroutine_is_async_gen(self, _coroutine_def_id: Self::CoroutineId) -> bool

Source§

fn unsizing_params_for_adt(self, id: Self::AdtId) -> Self::UnsizingParams

Source§

fn anonymize_bound_vars<T: TypeFoldable<Self>>( self, value: Binder<Self, T>, ) -> Binder<Self, T>

Source§

fn opaque_types_defined_by(self, def_id: Self::LocalDefId) -> Self::LocalDefIds

Source§

fn opaque_types_and_coroutines_defined_by( self, def_id: Self::LocalDefId, ) -> Self::LocalDefIds

Source§

fn alias_has_const_conditions(self, _def_id: Self::DefId) -> bool

Source§

fn explicit_implied_const_bounds( self, _def_id: Self::DefId, ) -> EarlyBinder<Self, impl IntoIterator<Item = Binder<Self, TraitRef<Self>>>>

Source§

fn fn_is_const(self, id: Self::FunctionId) -> bool

Source§

fn impl_is_const(self, _def_id: Self::ImplId) -> bool

Source§

fn opt_alias_variances( self, _kind: impl Into<AliasTermKind>, _def_id: Self::DefId, ) -> Option<Self::VariancesOf>

Source§

fn type_of_opaque_hir_typeck( self, def_id: Self::LocalDefId, ) -> EarlyBinder<Self, Self::Ty>

Source§

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

Source§

fn is_default_trait(self, def_id: Self::TraitId) -> bool

Source§

fn trait_is_coinductive(self, trait_: Self::TraitId) -> bool

Source§

fn trait_is_unsafe(self, trait_: Self::TraitId) -> bool

Returns true if this is an unsafe trait.
Source§

fn impl_self_is_guaranteed_unsized(self, _def_id: Self::ImplId) -> bool

Source§

fn impl_specializes( self, specializing_impl_def_id: Self::ImplId, parent_impl_def_id: Self::ImplId, ) -> bool

Source§

fn next_trait_solver_globally(self) -> bool

Source§

fn mk_probe(self, probe: Probe<Self>) -> Self::Probe

Source§

fn evaluate_root_goal_for_proof_tree_raw( self, canonical_goal: CanonicalInput<Self>, ) -> (QueryResult<Self>, Self::Probe)

Source§

fn is_sizedness_trait(self, def_id: Self::TraitId) -> bool

Source§

fn const_of_item(self, def_id: Self::DefId) -> EarlyBinder<Self, Self::Const>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'db> PlaceholderLike<DbInterner<'db>> for PlaceholderConst

Source§

type Bound = BoundConst

Source§

fn universe(self) -> UniverseIndex

Source§

fn var(self) -> BoundVar

Source§

fn with_updated_universe(self, ui: UniverseIndex) -> Self

Source§

fn new(ui: UniverseIndex, var: BoundConst) -> Self

Source§

fn new_anon(ui: UniverseIndex, var: BoundVar) -> Self

Source§

impl<'db> PlaceholderLike<DbInterner<'db>> for PlaceholderRegion

Source§

type Bound = BoundRegion

Source§

fn universe(self) -> UniverseIndex

Source§

fn var(self) -> BoundVar

Source§

fn with_updated_universe(self, ui: UniverseIndex) -> Self

Source§

fn new(ui: UniverseIndex, bound: Self::Bound) -> Self

Source§

fn new_anon(ui: UniverseIndex, var: BoundVar) -> Self

Source§

impl<'db> PlaceholderLike<DbInterner<'db>> for PlaceholderTy

Source§

type Bound = BoundTy

Source§

fn universe(self) -> UniverseIndex

Source§

fn var(self) -> BoundVar

Source§

fn with_updated_universe(self, ui: UniverseIndex) -> Self

Source§

fn new(ui: UniverseIndex, bound: BoundTy) -> Self

Source§

fn new_anon(ui: UniverseIndex, var: BoundVar) -> Self

Source§

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

Source§

fn allow_normalization(self) -> bool

Whether this projection can be soundly normalized.

Wf predicates must not be normalized, as normalization can remove required bounds which would cause us to unsoundly accept some programs. See #91068.

Source§

fn as_clause(self) -> Option<<DbInterner<'db> as Interner>::Clause>

§

fn as_normalizes_to(self) -> Option<Binder<I, NormalizesTo<I>>>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn new_placeholder( interner: DbInterner<'db>, var: <DbInterner<'db> as Interner>::PlaceholderRegion, ) -> Self

§

fn is_bound(self) -> bool

Source§

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

Source§

fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>

Source§

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

Source§

fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>

Source§

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

Source§

fn relate<R: TypeRelation<DbInterner<'db>>>( _relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>

Source§

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

Source§

fn relate<R: TypeRelation<DbInterner<'db>>>( _relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>

Source§

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

Source§

fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>

Source§

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

Source§

fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>

Source§

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

Source§

fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>

Source§

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

Source§

fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>

Source§

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

Source§

fn relate<R: TypeRelation<DbInterner<'db>>>( _relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>

Source§

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

Source§

fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>

Source§

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

Source§

fn relate<R: TypeRelation<DbInterner<'db>>>( relation: &mut R, a: Self, b: Self, ) -> RelateResult<DbInterner<'db>, Self>

Source§

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

Source§

fn safe() -> Self

Source§

fn is_safe(self) -> bool

Source§

fn prefix_str(self) -> &'static str

Source§

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

Source§

fn dummy() -> Self

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) -> Option<AliasTerm<I>>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn new_placeholder(interner: DbInterner<'db>, param: PlaceholderTy) -> Self

Source§

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

Source§

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

Source§

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

Source§

fn new_alias( interner: DbInterner<'db>, kind: AliasTyKind, alias_ty: AliasTy<'db>, ) -> Self

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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) -> Self

Source§

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

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>, ) -> <DbInterner<'db> as Interner>::Ty

§

fn new_projection_from_args( interner: I, def_id: <I as Interner>::DefId, args: <I as Interner>::GenericArgs, ) -> Self

§

fn new_projection( interner: I, def_id: <I as Interner>::DefId, 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 Adjustment<'db>

Source§

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

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: TypeFolder<DbInterner<'db>>>(self, __folder: &mut __F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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 BoundRegion

Source§

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

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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 BoundVar

Source§

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

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>

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: TypeFolder<DbInterner<'db>>>(self, __folder: &mut __F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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 FnAbi

Source§

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

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>

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: TypeFolder<DbInterner<'db>>>(self, __folder: &mut __F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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 ImplIdWrapper

Source§

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

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>

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: TypeFolder<DbInterner<'db>>>(self, __folder: &mut __F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>

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: TypeFolder<DbInterner<'db>>>(self, __folder: &mut __F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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 Placeholder<BoundRegion>

Source§

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

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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 Placeholder<BoundTy>

Source§

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

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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 Placeholder<BoundVar>

Source§

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

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>

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: TypeFolder<DbInterner<'db>>>(self, __folder: &mut __F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>

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: TypeFolder<DbInterner<'db>>>(self, __folder: &mut __F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>

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: TypeFolder<DbInterner<'db>>>(self, __folder: &mut __F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, _: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, _: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, __folder: &mut __F, ) -> Result<Self, __F::Error>

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: TypeFolder<DbInterner<'db>>>(self, __folder: &mut __F) -> Self

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f). Read more
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<'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 PlaceholderReplacer<'_, 'db>

Source§

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

Source§

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

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

Source§

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

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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

Source§

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

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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: FallibleTypeFolder<DbInterner<'db>>>( self, folder: &mut F, ) -> Result<Self, F::Error>

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: TypeFolder<DbInterner<'db>>>(self, folder: &mut F) -> Self

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

Source§

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

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

Source§

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

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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

Source§

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

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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 BoundRegion

Source§

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

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 BoundVar

Source§

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

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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 FnAbi

Source§

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

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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 ImplIdWrapper

Source§

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

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: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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<F: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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 Placeholder<BoundRegion>

Source§

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

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 Placeholder<BoundTy>

Source§

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

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 Placeholder<BoundVar>

Source§

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

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result

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: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>(&self, _: &mut F) -> F::Result

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: TypeVisitor<DbInterner<'db>>>( &self, visitor: &mut V, ) -> V::Result

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: TypeVisitor<DbInterner<'db>>>( &self, __visitor: &mut __V, ) -> __V::Result

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 ContainsTypeErrors

Source§

type Result = ControlFlow<()>

Source§

fn visit_ty(&mut self, t: Ty<'db>) -> Self::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 StalledOnCoroutines<'_, 'db>

Source§

type Result = ControlFlow<()>

Source§

fn visit_ty(&mut self, ty: Ty<'db>) -> Self::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 Clause<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, ClauseKind<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: PolyRegionOutlivesPredicate<'db>, tcx: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, PredicateKind<DbInterner<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, PredicateKind<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>> for Clause<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: Binder<'db, ProjectionPredicate<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>> for Clause<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitPredicate<DbInterner<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: Binder<'db, TraitPredicate<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>> for Clause<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>> for Predicate<'db>

Source§

fn upcast_from( from: Binder<DbInterner<'db>, TraitRef<DbInterner<'db>>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, Clause<'db>> for Predicate<'db>

Source§

fn upcast_from(from: Clause<'db>, _interner: DbInterner<'db>) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, ClauseKind<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: ClauseKind<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, NormalizesTo<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: NormalizesTo<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>> for Clause<'db>

Source§

fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Region<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Region<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Region<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Ty<'db>>> for Clause<'db>

Source§

fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Ty<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, OutlivesPredicate<DbInterner<'db>, Ty<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: OutlivesPredicate<DbInterner<'db>, Ty<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, PredicateKind<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: PredicateKind<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>> for Clause<'db>

Source§

fn upcast_from( from: ProjectionPredicate<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, ProjectionPredicate<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: ProjectionPredicate<'db>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, TraitPredicate<DbInterner<'db>>> for Clause<'db>

Source§

fn upcast_from( from: TraitPredicate<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, TraitPredicate<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: TraitPredicate<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, TraitRef<DbInterner<'db>>> for Clause<'db>

Source§

fn upcast_from( from: TraitRef<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

impl<'db> UpcastFrom<DbInterner<'db>, TraitRef<DbInterner<'db>>> for Predicate<'db>

Source§

fn upcast_from( from: TraitRef<DbInterner<'db>>, interner: DbInterner<'db>, ) -> Self

Source§

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

Source§

fn ty(self) -> Ty<'db>

Source§

fn valtree(self) -> Valtree<'db>

Source§

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

Source§

impl<'db> Copy for DbInterner<'db>

Source§

impl Send for DbInterner<'_>

Source§

impl Sync for DbInterner<'_>

Auto Trait Implementations§

§

impl<'db> Freeze for DbInterner<'db>

§

impl<'db> !RefUnwindSafe for DbInterner<'db>

§

impl<'db> Unpin for DbInterner<'db>

§

impl<'db> !UnwindSafe 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>

§

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> for T
where T: Any,

§

fn into_box(self) -> Box<dyn Any>

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 + 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.
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> 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
§

impl<'a, T> Captures<'a> for T
where T: ?Sized,