Skip to content

Commit cdea691

Browse files
Consider Copy/Clone too
1 parent fa361c1 commit cdea691

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

Diff for: compiler/rustc_next_trait_solver/src/solve/trait_goals.rs

+17
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ where
208208
}
209209
}
210210

211+
// TODO:
211212
if let ty::CoroutineWitness(def_id, _) = goal.predicate.self_ty().kind() {
212213
match ecx.typing_mode() {
213214
TypingMode::Analysis { stalled_generators, defining_opaque_types: _ } => {
@@ -274,6 +275,22 @@ where
274275
return Err(NoSolution);
275276
}
276277

278+
// TODO:
279+
if let ty::CoroutineWitness(def_id, _) = goal.predicate.self_ty().kind() {
280+
match *ecx.typing_mode() {
281+
TypingModeKind::Analysis { stalled_generators, defining_opaque_types: _ } => {
282+
if def_id.as_local().is_some_and(|def_id| stalled_generators.contains(&def_id))
283+
{
284+
return ecx.forced_ambiguity(MaybeCause::Ambiguity);
285+
}
286+
}
287+
TypingModeKind::Coherence
288+
| TypingModeKind::PostAnalysis
289+
| TypingModeKind::Borrowck { defining_opaque_types: _ }
290+
| TypingModeKind::PostBorrowckAnalysis { defined_opaque_types: _ } => {}
291+
}
292+
}
293+
277294
ecx.probe_and_evaluate_goal_for_constituent_tys(
278295
CandidateSource::BuiltinImpl(BuiltinImplSource::Misc),
279296
goal,

0 commit comments

Comments
 (0)