about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2024-04-04 16:01:06 -0400
committerMichael Goulet <michael@errs.io>2024-04-04 16:01:13 -0400
commit43dae6934153693be62902fcefed0f97b4ca892f (patch)
treeb36b05d17101d219c7c8c5c061a8b48cf938cf51 /compiler
parent0fd571286ef6df8a6cce06d432013239a8c0665f (diff)
downloadrust-43dae6934153693be62902fcefed0f97b4ca892f.tar.gz
rust-43dae6934153693be62902fcefed0f97b4ca892f.zip
Check def id before calling match_projection_projections
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_trait_selection/src/traits/project.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/project.rs b/compiler/rustc_trait_selection/src/traits/project.rs
index 9d744d9a032..1f7fa6f6643 100644
--- a/compiler/rustc_trait_selection/src/traits/project.rs
+++ b/compiler/rustc_trait_selection/src/traits/project.rs
@@ -793,6 +793,9 @@ fn assemble_candidates_from_trait_def<'cx, 'tcx>(
             let Some(clause) = clause.as_projection_clause() else {
                 return ControlFlow::Continue(());
             };
+            if clause.projection_def_id() != obligation.predicate.def_id {
+                return ControlFlow::Continue(());
+            }
 
             let is_match =
                 selcx.infcx.probe(|_| selcx.match_projection_projections(obligation, clause, true));