diff options
| author | lcnr <rust@lcnr.de> | 2025-09-29 13:57:51 +0200 |
|---|---|---|
| committer | lcnr <rust@lcnr.de> | 2025-09-29 15:28:33 +0200 |
| commit | 07806a1132f156ffad8c9edaed08825cd09fbce5 (patch) | |
| tree | 773349b92b6d9eca4d6a7208bf1fe6c15630bff1 | |
| parent | 0f2b79c36dcc4ec66125d6fa87694c7f5d39ebe8 (diff) | |
| download | rust-07806a1132f156ffad8c9edaed08825cd09fbce5.tar.gz rust-07806a1132f156ffad8c9edaed08825cd09fbce5.zip | |
cleanup `try_evaluate_added_goals`
| -rw-r--r-- | compiler/rustc_next_trait_solver/src/solve/eval_ctxt/mod.rs | 19 |
1 files changed, 5 insertions, 14 deletions
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 85110530ae9..f25003bbfe9 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 @@ -633,28 +633,19 @@ where // the certainty of all the goals. #[instrument(level = "trace", skip(self))] pub(super) fn try_evaluate_added_goals(&mut self) -> Result<Certainty, NoSolution> { - let mut response = Ok(Certainty::overflow(false)); for _ in 0..FIXPOINT_STEP_LIMIT { - // FIXME: This match is a bit ugly, it might be nice to change the inspect - // stuff to use a closure instead. which should hopefully simplify this a bit. match self.evaluate_added_goals_step() { - Ok(Some(cert)) => { - response = Ok(cert); - break; - } Ok(None) => {} + Ok(Some(cert)) => return Ok(cert), Err(NoSolution) => { - response = Err(NoSolution); - break; + self.tainted = Err(NoSolution); + return Err(NoSolution); } } } - if response.is_err() { - self.tainted = Err(NoSolution); - } - - response + debug!("try_evaluate_added_goals: encountered overflow"); + Ok(Certainty::overflow(false)) } /// Iterate over all added goals: returning `Ok(Some(_))` in case we can stop rerunning. |
