]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc_traits/evaluate_obligation.rs
Rollup merge of #68473 - nopsledder:rust_sanitizer_fuchsia, r=alexcrichton
[rust.git] / src / librustc_traits / evaluate_obligation.rs
index be3a8340e6006d2591b7eb45951253f9cf1669b2..3ad1b223a84339b0632a257a7dca4442da05df43 100644 (file)
@@ -4,32 +4,28 @@
 };
 use rustc::ty::query::Providers;
 use rustc::ty::{ParamEnvAnd, TyCtxt};
-use syntax::source_map::DUMMY_SP;
+use rustc_span::source_map::DUMMY_SP;
 
 crate fn provide(p: &mut Providers<'_>) {
-    *p = Providers {
-        evaluate_obligation,
-        ..*p
-    };
+    *p = Providers { evaluate_obligation, ..*p };
 }
 
 fn evaluate_obligation<'tcx>(
-    tcx: TyCtxt<'tcx, 'tcx>,
+    tcx: TyCtxt<'tcx>,
     canonical_goal: CanonicalPredicateGoal<'tcx>,
 ) -> Result<EvaluationResult, OverflowError> {
+    debug!("evaluate_obligation(canonical_goal={:#?})", canonical_goal);
     tcx.infer_ctxt().enter_with_canonical(
         DUMMY_SP,
         &canonical_goal,
         |ref infcx, goal, _canonical_inference_vars| {
-            let ParamEnvAnd {
-                param_env,
-                value: predicate,
-            } = goal;
+            debug!("evaluate_obligation: goal={:#?}", goal);
+            let ParamEnvAnd { param_env, value: predicate } = goal;
 
             let mut selcx = SelectionContext::with_query_mode(&infcx, TraitQueryMode::Canonical);
             let obligation = Obligation::new(ObligationCause::dummy(), param_env, predicate);
 
-            selcx.evaluate_obligation_recursively(&obligation)
+            selcx.evaluate_root_obligation(&obligation)
         },
     )
 }