Struct DbInterner

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

Implementations§

Source§

impl<'db> DbInterner<'db>

Source

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

Source

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

Source

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

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

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

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<<DbInterner<'db> as Interner>::DefId>

Source§

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

Source§

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

Source§

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

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

Source§

fn new_anon_bound( interner: DbInterner<'db>, debruijn: DebruijnIndex, var: BoundVar, ) -> 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

Source§

fn new_placeholder( interner: DbInterner<'db>, param: <DbInterner<'db> as Interner>::PlaceholderConst, ) -> 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 SolverDefId

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

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

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

Source§

type ParamConst = ParamConst

Source§

type BoundConst = BoundVar

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

Source§

type AdtDef = AdtDef

Source§

type Features = Features

Source§

type UnsizingParams = UnsizingParams

Source§

fn mk_predefined_opaques_in_body( self, data: PredefinedOpaquesData<Self>, ) -> 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 evaluation_is_concurrent(&self) -> bool

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, adt_def_id: Self::DefId) -> Self::AdtDef

Source§

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

Source§

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

Source§

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

Source§

fn 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::DefId, ) -> EarlyBinder<Self, Binder<Self, FnSig<Self>>>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn 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::DefId, ) -> 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_def_id: Self::DefId, ) -> 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::DefId) -> bool

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn trait_may_be_implemented_via_object(self, trait_def_id: Self::DefId) -> 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, coroutine_def_id: Self::DefId) -> bool

Source§

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

Source§

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

Source§

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

Source§

fn unsizing_params_for_adt( self, adt_def_id: Self::DefId, ) -> 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, defining_anchor: 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, def_id: Self::DefId) -> bool

Source§

fn impl_is_const(self, def_id: Self::DefId) -> 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::DefId, ) -> EarlyBinder<Self, Binder<Self, CoroutineWitnessTypes<Self>>>

Source§

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

Source§

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

Source§

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

Returns true if this is an unsafe trait.
Source§

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

Source§

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

Source§

fn next_trait_solver_globally(self) -> bool

Source§

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

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

Source§

type Bound = BoundVar

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: BoundVar) -> 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_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_alias( interner: DbInterner<'db>, kind: AliasTyKind, alias_ty: AliasTy<DbInterner<'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: <DbInterner<'db> as Interner>::DefId, ) -> Self

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn new_coroutine_witness( interner: DbInterner<'db>, def_id: <DbInterner<'db> as Interner>::DefId, 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: <DbInterner<'db> as Interner>::DefId, 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 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 discriminant_ty( self, interner: DbInterner<'db>, ) -> <DbInterner<'db> as Interner>::Ty

Source§

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

Source§

fn has_unsafe_fields(self) -> bool

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

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

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

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§

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

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 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 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> 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>, 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 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 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
§

impl<T> Cast for T

§

fn cast<U>(self, interner: <U as HasInterner>::Interner) -> U
where Self: CastTo<U>, U: HasInterner,

Cast a value to type U using CastTo.
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 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 evaluation_is_concurrent(&self) -> bool

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

§

fn into_box(self) -> Box<dyn Any + Sync + Send>

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,