about summary refs log tree commit diff
path: root/compiler/rustc_next_trait_solver/src/solve/mod.rs
diff options
context:
space:
mode:
authorThe Miri Cronjob Bot <miri@cron.bot>2025-09-13 04:59:55 +0000
committerThe Miri Cronjob Bot <miri@cron.bot>2025-09-13 04:59:55 +0000
commit520e45a538a6c047c77785f09fdead3842b7b7ba (patch)
tree2f810c44d18e82c7d160925dc49c157acbae9116 /compiler/rustc_next_trait_solver/src/solve/mod.rs
parentae57f08c1377b304b13fbb922438615d7692d65e (diff)
parent544644476d9c304648801dae76d85b1c17fc35d1 (diff)
downloadrust-520e45a538a6c047c77785f09fdead3842b7b7ba.tar.gz
rust-520e45a538a6c047c77785f09fdead3842b7b7ba.zip
Merge ref '4ba1cf9ade4c' from rust-lang/rust
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: 4ba1cf9ade4c8e2fa10676a50ee34594eb161837
Filtered ref: 84b64d836ed478c54972a1d2639e60fa5f3ce26f
Upstream diff: https://github.com/rust-lang/rust/compare/2a9bacf6187685931d52346a0ecff2e52bdc91cc...4ba1cf9ade4c8e2fa10676a50ee34594eb161837

This merge was created using https://github.com/rust-lang/josh-sync.
Diffstat (limited to 'compiler/rustc_next_trait_solver/src/solve/mod.rs')
-rw-r--r--compiler/rustc_next_trait_solver/src/solve/mod.rs8
1 files changed, 2 insertions, 6 deletions
diff --git a/compiler/rustc_next_trait_solver/src/solve/mod.rs b/compiler/rustc_next_trait_solver/src/solve/mod.rs
index db3460c4ff6..cd27c9c26c1 100644
--- a/compiler/rustc_next_trait_solver/src/solve/mod.rs
+++ b/compiler/rustc_next_trait_solver/src/solve/mod.rs
@@ -24,7 +24,7 @@ mod trait_goals;
 use derive_where::derive_where;
 use rustc_type_ir::inherent::*;
 pub use rustc_type_ir::solve::*;
-use rustc_type_ir::{self as ty, Interner, TypingMode};
+use rustc_type_ir::{self as ty, Interner, TyVid, TypingMode};
 use tracing::instrument;
 
 pub use self::eval_ctxt::{
@@ -418,11 +418,6 @@ pub struct GoalEvaluation<I: Interner> {
     pub has_changed: HasChanged,
     /// If the [`Certainty`] was `Maybe`, then keep track of whether the goal has changed
     /// before rerunning it.
-    ///
-    /// We knowingly ignore the `sub_root` of our inference variables here. This means we
-    /// may not reevaluate a goal even though a change to the `sub_root` could cause a goal
-    /// to make progress. Tracking them adds additional complexity for an incredibly minor
-    /// type inference improvement. We could look into properly handling this in the future.
     pub stalled_on: Option<GoalStalledOn<I>>,
 }
 
@@ -431,6 +426,7 @@ pub struct GoalEvaluation<I: Interner> {
 pub struct GoalStalledOn<I: Interner> {
     pub num_opaques: usize,
     pub stalled_vars: Vec<I::GenericArg>,
+    pub sub_roots: Vec<TyVid>,
     /// The cause that will be returned on subsequent evaluations if this goal remains stalled.
     pub stalled_cause: MaybeCause,
 }