rustc_trait_selection/
solve.rs1pub use rustc_next_trait_solver::solve::*;
2
3mod delegate;
4mod fulfill;
5pub mod inspect;
6mod normalize;
7mod select;
8
9pub(crate) use delegate::SolverDelegate;
10pub use fulfill::{FulfillmentCtxt, NextSolverError, StalledOnCoroutines};
11pub(crate) use normalize::deeply_normalize_for_diagnostics;
12pub use normalize::{
13 deeply_normalize, deeply_normalize_with_skipped_universes,
14 deeply_normalize_with_skipped_universes_and_ambiguous_coroutine_goals,
15};
16use rustc_middle::query::Providers;
17use rustc_middle::ty::TyCtxt;
18pub use select::InferCtxtSelectExt;
19
20fn evaluate_root_goal_for_proof_tree_raw<'tcx>(
21 tcx: TyCtxt<'tcx>,
22 canonical_input: CanonicalInput<TyCtxt<'tcx>>,
23) -> (QueryResult<TyCtxt<'tcx>>, &'tcx inspect::Probe<TyCtxt<'tcx>>) {
24 evaluate_root_goal_for_proof_tree_raw_provider::<SolverDelegate<'tcx>, TyCtxt<'tcx>>(
25 tcx,
26 canonical_input,
27 )
28}
29
30pub fn provide(providers: &mut Providers) {
31 *providers = Providers { evaluate_root_goal_for_proof_tree_raw, ..*providers };
32}