Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/next_solver/infer/context.rs')
| -rw-r--r-- | crates/hir-ty/src/next_solver/infer/context.rs | 50 |
1 files changed, 37 insertions, 13 deletions
diff --git a/crates/hir-ty/src/next_solver/infer/context.rs b/crates/hir-ty/src/next_solver/infer/context.rs index 397986e2ed..1e2a3ff0c2 100644 --- a/crates/hir-ty/src/next_solver/infer/context.rs +++ b/crates/hir-ty/src/next_solver/infer/context.rs @@ -5,12 +5,16 @@ use rustc_type_ir::{ RegionVid, TyVid, TypeFoldable, TypingMode, UniverseIndex, inherent::{Const as _, IntoKind, Ty as _}, relate::combine::PredicateEmittingRelation, + solve::VisibleForLeakCheck, }; -use crate::next_solver::{ - Binder, Const, ConstKind, DbInterner, ErrorGuaranteed, GenericArgs, OpaqueTypeKey, Region, - SolverDefId, Span, Ty, TyKind, - infer::opaque_types::{OpaqueHiddenType, table::OpaqueTypeStorageEntries}, +use crate::{ + Span, + next_solver::{ + Binder, Const, ConstKind, DbInterner, ErrorGuaranteed, GenericArgs, OpaqueTypeKey, Region, + SolverDefId, Ty, TyKind, + infer::opaque_types::{OpaqueHiddenType, table::OpaqueTypeStorageEntries}, + }, }; use super::{BoundRegionConversionTime, InferCtxt, relate::RelateResult}; @@ -26,8 +30,12 @@ impl<'db> rustc_type_ir::InferCtxtLike for InferCtxt<'db> { true } - fn typing_mode(&self) -> TypingMode<DbInterner<'db>> { - self.typing_mode() + fn disable_trait_solver_fast_paths(&self) -> bool { + false + } + + fn typing_mode_raw(&self) -> TypingMode<DbInterner<'db>> { + self.typing_mode_raw() } fn universe(&self) -> UniverseIndex { @@ -139,26 +147,30 @@ impl<'db> rustc_type_ir::InferCtxtLike for InferCtxt<'db> { } fn next_ty_infer(&self) -> Ty<'db> { - self.next_ty_var() + self.next_ty_var(Span::Dummy) } fn next_region_infer(&self) -> <Self::Interner as rustc_type_ir::Interner>::Region { - self.next_region_var() + self.next_region_var(Span::Dummy) } fn next_const_infer(&self) -> Const<'db> { - self.next_const_var() + self.next_const_var(Span::Dummy) } fn fresh_args_for_item(&self, def_id: SolverDefId) -> GenericArgs<'db> { - self.fresh_args_for_item(def_id) + self.fresh_args_for_item(Span::Dummy, def_id) } fn instantiate_binder_with_infer<T: TypeFoldable<DbInterner<'db>> + Clone>( &self, value: Binder<'db, T>, ) -> T { - self.instantiate_binder_with_fresh_vars(BoundRegionConversionTime::HigherRankedType, value) + self.instantiate_binder_with_fresh_vars( + Span::Dummy, + BoundRegionConversionTime::HigherRankedType, + value, + ) } fn enter_forall<T: TypeFoldable<DbInterner<'db>> + Clone, U>( @@ -250,11 +262,23 @@ impl<'db> rustc_type_ir::InferCtxtLike for InferCtxt<'db> { self.probe(|_| probe()) } - fn sub_regions(&self, sub: Region<'db>, sup: Region<'db>, _span: Span) { + fn sub_regions( + &self, + sub: Region<'db>, + sup: Region<'db>, + _vis: VisibleForLeakCheck, + _span: Span, + ) { self.inner.borrow_mut().unwrap_region_constraints().make_subregion(sub, sup); } - fn equate_regions(&self, a: Region<'db>, b: Region<'db>, _span: Span) { + fn equate_regions( + &self, + a: Region<'db>, + b: Region<'db>, + _vis: VisibleForLeakCheck, + _span: Span, + ) { self.inner.borrow_mut().unwrap_region_constraints().make_eqregion(a, b); } |