fixup the refactoring errors in 156246
diff --git a/compiler/rustc_next_trait_solver/src/solve/eval_ctxt/mod.rs b/compiler/rustc_next_trait_solver/src/solve/eval_ctxt/mod.rs
index 05532cd..fa6de4a 100644
--- a/compiler/rustc_next_trait_solver/src/solve/eval_ctxt/mod.rs
+++ b/compiler/rustc_next_trait_solver/src/solve/eval_ctxt/mod.rs
@@ -462,7 +462,7 @@ pub(super) fn enter_canonical<T>(
                 Ok(i) => Ok(i),
                 Err(NoSolutionOrRerunNonErased::NoSolution(NoSolution)) => Err(NoSolution),
                 Err(NoSolutionOrRerunNonErased::RerunNonErased(_)) => {
-                    // check th t the opaque_accesses state mirrors the result we got.
+                    // Check that the opaque_accesses state mirrors the result we got.
                     assert!(opaque_accesses.should_bail().is_err());
                     Err(NoSolution)
                 }
@@ -1442,7 +1442,7 @@ pub(super) fn evaluate_const(
         uv: ty::UnevaluatedConst<I>,
     ) -> Result<Option<I::Const>, RerunNonErased> {
         if self.typing_mode().is_erased_not_coherence() {
-            self.opaque_accesses.rerun_always(RerunReason::EvaluateConst)?;
+            match self.opaque_accesses.rerun_always(RerunReason::EvaluateConst)? {}
         }
 
         Ok(self.delegate.evaluate_const(param_env, uv))
@@ -1515,7 +1515,7 @@ pub(super) fn may_use_unstable_feature(
         symbol: I::Symbol,
     ) -> Result<bool, RerunNonErased> {
         if self.typing_mode().is_erased_not_coherence() {
-            self.opaque_accesses.rerun_always(RerunReason::MayUseUnstableFeature)?;
+            match self.opaque_accesses.rerun_always(RerunReason::MayUseUnstableFeature)? {}
         }
 
         Ok(may_use_unstable_feature(&**self.delegate, param_env, symbol))
diff --git a/compiler/rustc_next_trait_solver/src/solve/eval_ctxt/probe.rs b/compiler/rustc_next_trait_solver/src/solve/eval_ctxt/probe.rs
index 1c5d6e0..d9d18bd 100644
--- a/compiler/rustc_next_trait_solver/src/solve/eval_ctxt/probe.rs
+++ b/compiler/rustc_next_trait_solver/src/solve/eval_ctxt/probe.rs
@@ -98,10 +98,8 @@ pub(in crate::solve) fn enter_inner(
 
         outer.opaque_accesses.update(nested.opaque_accesses)?;
 
-        let r = match r.map_err_to_rerun()? {
-            Ok(i) => Ok(i),
-            Err(NoSolution) => Err(NoSolution),
-        };
+        // Unwrap is unreachable, we would have returned on the line above.
+        let r = r.map_err_to_rerun().unwrap();
 
         if !nested.inspect.is_noop() {
             let probe_kind = probe_kind(&r);
diff --git a/compiler/rustc_next_trait_solver/src/solve/normalizes_to.rs b/compiler/rustc_next_trait_solver/src/solve/normalizes_to.rs
index e0290df..eeba184 100644
--- a/compiler/rustc_next_trait_solver/src/solve/normalizes_to.rs
+++ b/compiler/rustc_next_trait_solver/src/solve/normalizes_to.rs
@@ -81,15 +81,10 @@ pub(super) fn compute_normalizes_to_goal(
                 None
             },
             |ecx| {
-                ecx.probe(|&result| ProbeKind::RigidAlias { result })
-                    .enter(|this| {
-                        this.structurally_instantiate_normalizes_to_term(
-                            goal,
-                            goal.predicate.alias,
-                        );
-                        this.evaluate_added_goals_and_make_canonical_response(Certainty::Yes)
-                    })
-                    .map_err(Into::into)
+                ecx.probe(|&result| ProbeKind::RigidAlias { result }).enter(|this| {
+                    this.structurally_instantiate_normalizes_to_term(goal, goal.predicate.alias);
+                    this.evaluate_added_goals_and_make_canonical_response(Certainty::Yes)
+                })
             },
         )
     }
@@ -351,11 +346,9 @@ fn consider_impl_candidate(
                                     GoalSource::Misc,
                                     goal.with(cx, PredicateKind::Ambiguous),
                                 )?;
-                                return ecx
-                                    .evaluate_added_goals_and_make_canonical_response(
-                                        Certainty::Yes,
-                                    )
-                                    .map_err(Into::into);
+                                return ecx.evaluate_added_goals_and_make_canonical_response(
+                                    Certainty::Yes,
+                                );
                             }
                             // Outside of coherence, we treat the associated item as rigid instead.
                             ty::TypingMode::Typeck { .. }
@@ -367,11 +360,9 @@ fn consider_impl_candidate(
                                     goal,
                                     goal.predicate.alias,
                                 );
-                                return ecx
-                                    .evaluate_added_goals_and_make_canonical_response(
-                                        Certainty::Yes,
-                                    )
-                                    .map_err(Into::into);
+                                return ecx.evaluate_added_goals_and_make_canonical_response(
+                                    Certainty::Yes,
+                                );
                             }
                         };
                     }
@@ -401,10 +392,10 @@ fn consider_impl_candidate(
                         // This is not the case here and we only prefer adding an ambiguous
                         // nested goal for consistency.
                         ecx.add_goal(GoalSource::Misc, goal.with(cx, PredicateKind::Ambiguous))?;
-                        return then(ecx, Certainty::Yes).map_err(Into::into);
+                        return then(ecx, Certainty::Yes);
                     } else {
                         ecx.structurally_instantiate_normalizes_to_term(goal, goal.predicate.alias);
-                        return then(ecx, Certainty::Yes).map_err(Into::into);
+                        return then(ecx, Certainty::Yes);
                     }
                 } else {
                     return error_response(ecx, cx.delay_bug("missing item"));
@@ -472,7 +463,7 @@ fn consider_impl_candidate(
             };
 
             ecx.instantiate_normalizes_to_term(goal, term)?;
-            ecx.evaluate_added_goals_and_make_canonical_response(Certainty::Yes).map_err(Into::into)
+            ecx.evaluate_added_goals_and_make_canonical_response(Certainty::Yes)
         })
     }
 
@@ -572,7 +563,6 @@ fn consider_builtin_fn_trait_candidates(
             pred,
             [(GoalSource::ImplWhereBound, goal.with(cx, output_is_sized_pred))],
         )
-        .map_err(Into::into)
     }
 
     fn consider_builtin_async_fn_trait_candidates(
@@ -759,8 +749,9 @@ fn consider_builtin_pointee_candidate(
                 // and opaque types: If the `self_ty` is `Sized`, then the metadata is `()`.
                 // FIXME(ptr_metadata): This impl overlaps with the other impls and shouldn't
                 // exist. Instead, `Pointee<Metadata = ()>` should be a supertrait of `Sized`.
-                let alias_bound_result =
-                    ecx.probe_builtin_trait_candidate(BuiltinImplSource::Misc).enter(|ecx| {
+                let alias_bound_result = ecx
+                    .probe_builtin_trait_candidate(BuiltinImplSource::Misc)
+                    .enter(|ecx| {
                         let sized_predicate = ty::TraitRef::new(
                             cx,
                             cx.require_trait_lang_item(SolverTraitLangItem::Sized),
@@ -769,12 +760,8 @@ fn consider_builtin_pointee_candidate(
                         ecx.add_goal(GoalSource::Misc, goal.with(cx, sized_predicate))?;
                         ecx.instantiate_normalizes_to_term(goal, Ty::new_unit(cx).into())?;
                         ecx.evaluate_added_goals_and_make_canonical_response(Certainty::Yes)
-                    });
-
-                let alias_bound_result = match alias_bound_result.map_err_to_rerun()? {
-                    Ok(i) => Ok(i),
-                    Err(NoSolution) => Err(NoSolution),
-                };
+                    })
+                    .map_err_to_rerun()?;
 
                 // In case the dummy alias-bound candidate does not apply, we instead treat this projection
                 // as rigid.
@@ -900,7 +887,6 @@ fn consider_builtin_iterator_candidate(
             // but that's already proven by the generator being WF.
             [],
         )
-        .map_err(Into::into)
     }
 
     fn consider_builtin_fused_iterator_candidate(
diff --git a/compiler/rustc_next_trait_solver/src/solve/search_graph.rs b/compiler/rustc_next_trait_solver/src/solve/search_graph.rs
index 549d5d9..778826b 100644
--- a/compiler/rustc_next_trait_solver/src/solve/search_graph.rs
+++ b/compiler/rustc_next_trait_solver/src/solve/search_graph.rs
@@ -4,7 +4,7 @@
 use rustc_type_ir::data_structures::ensure_sufficient_stack;
 use rustc_type_ir::search_graph::{self, PathKind};
 use rustc_type_ir::solve::{
-    AccessedOpaques, CanonicalInput, Certainty, NoSolution, NoSolutionOrRerunNonErased, QueryResult,
+    AccessedOpaques, CanonicalInput, Certainty, NoSolution, QueryResult, RerunResultExt,
 };
 use rustc_type_ir::{Interner, MayBeErased, TypingMode};
 
@@ -141,17 +141,8 @@ fn compute_goal(
     ) -> (QueryResult<I>, AccessedOpaques<I>) {
         ensure_sufficient_stack(|| {
             EvalCtxt::enter_canonical(cx, search_graph, input, inspect, |ecx, goal| {
-                let result = ecx.compute_goal(goal);
-
-                // if we're in `RerunNonErased`, don't even bother with inspect,
-                // and immediately return
-                let result = match result {
-                    Ok(i) => Ok(i),
-                    Err(NoSolutionOrRerunNonErased::NoSolution(NoSolution)) => Err(NoSolution),
-                    Err(NoSolutionOrRerunNonErased::RerunNonErased(e)) => {
-                        return Err(e.into());
-                    }
-                };
+                // if we're in `RerunNonErased`, don't even bother with inspect, and immediately return
+                let result = ecx.compute_goal(goal).map_err_to_rerun()?;
 
                 ecx.inspect.query_result(result);
                 result.map_err(Into::into)
diff --git a/compiler/rustc_next_trait_solver/src/solve/trait_goals.rs b/compiler/rustc_next_trait_solver/src/solve/trait_goals.rs
index 79e0af7..5c002d0 100644
--- a/compiler/rustc_next_trait_solver/src/solve/trait_goals.rs
+++ b/compiler/rustc_next_trait_solver/src/solve/trait_goals.rs
@@ -119,7 +119,7 @@ fn consider_impl_candidate(
                     .map(|pred| goal.with(cx, pred)),
             )?;
 
-            then(ecx, maximal_certainty).map_err(Into::into)
+            then(ecx, maximal_certainty)
         })
     }
 
@@ -399,7 +399,6 @@ fn consider_builtin_fn_trait_candidates(
             pred,
             [(GoalSource::ImplWhereBound, goal.with(cx, output_is_sized_pred))],
         )
-        .map_err(Into::into)
     }
 
     fn consider_builtin_async_fn_trait_candidates(
@@ -450,7 +449,6 @@ fn consider_builtin_async_fn_trait_candidates(
                 .chain(nested_preds.into_iter().map(|pred| goal.with(cx, pred)))
                 .map(|goal| (GoalSource::ImplWhereBound, goal)),
         )
-        .map_err(Into::into)
     }
 
     fn consider_builtin_async_fn_kind_helper_candidate(
@@ -696,7 +694,7 @@ fn consider_builtin_transmute_candidate(
                     goal.predicate.trait_ref.args.type_at(1),
                     assume,
                 )?;
-                ecx.evaluate_added_goals_and_make_canonical_response(certainty).map_err(Into::into)
+                ecx.evaluate_added_goals_and_make_canonical_response(certainty)
             },
         )
     }
@@ -1085,7 +1083,6 @@ fn consider_builtin_upcast_to_principal(
                                     ecx.try_evaluate_added_goals()
                                 },
                             )
-                            .map_err(Into::into)
                         })
                         .is_ok()
             };
@@ -1124,11 +1121,9 @@ fn consider_builtin_upcast_to_principal(
                             return Err(NoSolution.into());
                         };
                         if matching_projections.next().is_some() {
-                            return ecx
-                                .evaluate_added_goals_and_make_canonical_response(
-                                    Certainty::AMBIGUOUS,
-                                )
-                                .map_err(Into::into);
+                            return ecx.evaluate_added_goals_and_make_canonical_response(
+                                Certainty::AMBIGUOUS,
+                            );
                         }
                         ecx.enter_forall_with_assumptions(
                             target_projection,
@@ -1156,7 +1151,7 @@ fn consider_builtin_upcast_to_principal(
                 Goal::new(ecx.cx(), param_env, ty::OutlivesPredicate(a_region, b_region)),
             )?;
 
-            ecx.evaluate_added_goals_and_make_canonical_response(Certainty::Yes).map_err(Into::into)
+            ecx.evaluate_added_goals_and_make_canonical_response(Certainty::Yes)
         })
     }