about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYotam Ofek <yotamofek@microsoft.com>2025-06-26 23:36:46 +0000
committerYotam Ofek <yotamofek@microsoft.com>2025-06-26 23:36:46 +0000
commit174cb47a468fb19a3a41895f994eef2f8e7cdd22 (patch)
treebda00abe287793ad82dd5d10e1397b57b508b85c
parentb03b3a7ec92682be2917540b679478d41c95a30c (diff)
downloadrust-174cb47a468fb19a3a41895f994eef2f8e7cdd22.tar.gz
rust-174cb47a468fb19a3a41895f994eef2f8e7cdd22.zip
Fix some fixmes that were waiting for let chains
-rw-r--r--compiler/rustc_next_trait_solver/src/solve/assembly/structural_traits.rs17
-rw-r--r--src/tools/compiletest/src/executor.rs6
2 files changed, 11 insertions, 12 deletions
diff --git a/compiler/rustc_next_trait_solver/src/solve/assembly/structural_traits.rs b/compiler/rustc_next_trait_solver/src/solve/assembly/structural_traits.rs
index f39d3226009..4c649225359 100644
--- a/compiler/rustc_next_trait_solver/src/solve/assembly/structural_traits.rs
+++ b/compiler/rustc_next_trait_solver/src/solve/assembly/structural_traits.rs
@@ -326,11 +326,10 @@ pub(in crate::solve) fn extract_tupled_inputs_and_output_from_callable<I: Intern
             let kind_ty = args.kind_ty();
             let sig = args.coroutine_closure_sig().skip_binder();
 
-            // FIXME: let_chains
-            let kind = kind_ty.to_opt_closure_kind();
-            let coroutine_ty = if kind.is_some() && !args.tupled_upvars_ty().is_ty_var() {
-                let closure_kind = kind.unwrap();
-                if !closure_kind.extends(goal_kind) {
+            let coroutine_ty = if let Some(kind) = kind_ty.to_opt_closure_kind()
+                && !args.tupled_upvars_ty().is_ty_var()
+            {
+                if !kind.extends(goal_kind) {
                     return Err(NoSolution);
                 }
 
@@ -435,10 +434,10 @@ pub(in crate::solve) fn extract_tupled_inputs_and_output_from_async_callable<I:
             let sig = args.coroutine_closure_sig().skip_binder();
             let mut nested = vec![];
 
-            // FIXME: let_chains
-            let kind = kind_ty.to_opt_closure_kind();
-            let coroutine_ty = if kind.is_some() && !args.tupled_upvars_ty().is_ty_var() {
-                if !kind.unwrap().extends(goal_kind) {
+            let coroutine_ty = if let Some(kind) = kind_ty.to_opt_closure_kind()
+                && !args.tupled_upvars_ty().is_ty_var()
+            {
+                if !kind.extends(goal_kind) {
                     return Err(NoSolution);
                 }
 
diff --git a/src/tools/compiletest/src/executor.rs b/src/tools/compiletest/src/executor.rs
index e774c5e2047..0c4ef36828a 100644
--- a/src/tools/compiletest/src/executor.rs
+++ b/src/tools/compiletest/src/executor.rs
@@ -40,9 +40,9 @@ pub(crate) fn run_tests(config: &Config, tests: Vec<CollectedTest>) -> bool {
     // In that case, the tests will effectively be run serially anyway.
     loop {
         // Spawn new test threads, up to the concurrency limit.
-        // FIXME(let_chains): Use a let-chain here when stable in bootstrap.
-        'spawn: while running_tests.len() < concurrency {
-            let Some((id, test)) = fresh_tests.next() else { break 'spawn };
+        while running_tests.len() < concurrency
+            && let Some((id, test)) = fresh_tests.next()
+        {
             listener.test_started(test);
             deadline_queue.push(id, test);
             let join_handle = spawn_test_thread(id, test, completion_tx.clone());