about summary refs log tree commit diff
path: root/compiler/rustc_trait_selection/src/solve/mod.rs
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2024-06-17 11:58:38 -0400
committerMichael Goulet <michael@errs.io>2024-06-18 10:40:30 -0400
commitbaf94bddf0503bb97376534d10883dbf678bfc6a (patch)
tree9e597c5045942f9229841fd5932258c217dfbd6f /compiler/rustc_trait_selection/src/solve/mod.rs
parente7d2d95e5a6353e6cf0321c812c556130954302c (diff)
downloadrust-baf94bddf0503bb97376534d10883dbf678bfc6a.tar.gz
rust-baf94bddf0503bb97376534d10883dbf678bfc6a.zip
SolverDelegate
Diffstat (limited to 'compiler/rustc_trait_selection/src/solve/mod.rs')
-rw-r--r--compiler/rustc_trait_selection/src/solve/mod.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/rustc_trait_selection/src/solve/mod.rs b/compiler/rustc_trait_selection/src/solve/mod.rs
index 7b6e525370c..3b43c0e3e70 100644
--- a/compiler/rustc_trait_selection/src/solve/mod.rs
+++ b/compiler/rustc_trait_selection/src/solve/mod.rs
@@ -13,9 +13,10 @@
 //!
 //! FIXME(@lcnr): Write that section. If you read this before then ask me
 //! about it on zulip.
+
+use self::infcx::SolverDelegate;
 use rustc_hir::def_id::DefId;
 use rustc_infer::infer::canonical::Canonical;
-use rustc_infer::infer::InferCtxt;
 use rustc_infer::traits::query::NoSolution;
 use rustc_macros::extension;
 use rustc_middle::bug;
@@ -33,6 +34,7 @@ mod alias_relate;
 mod assembly;
 mod eval_ctxt;
 mod fulfill;
+mod infcx;
 pub mod inspect;
 mod normalize;
 mod normalizes_to;
@@ -73,7 +75,7 @@ impl<'tcx> Canonical<'tcx, Response<TyCtxt<'tcx>>> {
     }
 }
 
-impl<'a, 'tcx> EvalCtxt<'a, InferCtxt<'tcx>> {
+impl<'a, 'tcx> EvalCtxt<'a, SolverDelegate<'tcx>> {
     #[instrument(level = "trace", skip(self))]
     fn compute_type_outlives_goal(
         &mut self,
@@ -224,7 +226,7 @@ impl<'a, 'tcx> EvalCtxt<'a, InferCtxt<'tcx>> {
     }
 }
 
-impl<'tcx> EvalCtxt<'_, InferCtxt<'tcx>> {
+impl<'tcx> EvalCtxt<'_, SolverDelegate<'tcx>> {
     /// Try to merge multiple possible ways to prove a goal, if that is not possible returns `None`.
     ///
     /// In this case we tend to flounder and return ambiguity by calling `[EvalCtxt::flounder]`.