remove the usize field from CandidateSource::AliasBound
This commit is contained in:
parent
7d4df2d30e
commit
d4a816c813
3 changed files with 5 additions and 7 deletions
|
@ -76,7 +76,7 @@ pub(super) enum CandidateSource {
|
|||
/// let _y = x.clone();
|
||||
/// }
|
||||
/// ```
|
||||
AliasBound(usize),
|
||||
AliasBound(),
|
||||
}
|
||||
|
||||
pub(super) trait GoalKind<'tcx>: TypeFoldable<'tcx> + Copy + Eq {
|
||||
|
@ -217,8 +217,6 @@ impl<'tcx> EvalCtxt<'_, 'tcx> {
|
|||
// NOTE: Alternatively we could call `evaluate_goal` here and only have a `Normalized` candidate.
|
||||
// This doesn't work as long as we use `CandidateSource` in winnowing.
|
||||
let goal = goal.with(tcx, goal.predicate.with_self_ty(tcx, normalized_ty));
|
||||
// FIXME: This is broken if we care about the `usize` of `AliasBound` because the self type
|
||||
// could be normalized to yet another projection with different item bounds.
|
||||
let normalized_candidates = self.assemble_and_evaluate_candidates(goal);
|
||||
for mut normalized_candidate in normalized_candidates {
|
||||
normalized_candidate.result =
|
||||
|
@ -342,7 +340,7 @@ impl<'tcx> EvalCtxt<'_, 'tcx> {
|
|||
ty::Alias(_, alias_ty) => alias_ty,
|
||||
};
|
||||
|
||||
for (i, (assumption, _)) in self
|
||||
for (_, (assumption, _)) in self
|
||||
.tcx()
|
||||
.bound_explicit_item_bounds(alias_ty.def_id)
|
||||
.subst_iter_copied(self.tcx(), alias_ty.substs)
|
||||
|
@ -350,7 +348,7 @@ impl<'tcx> EvalCtxt<'_, 'tcx> {
|
|||
{
|
||||
match G::consider_assumption(self, goal, assumption) {
|
||||
Ok(result) => {
|
||||
candidates.push(Candidate { source: CandidateSource::AliasBound(i), result })
|
||||
candidates.push(Candidate { source: CandidateSource::AliasBound(), result })
|
||||
}
|
||||
Err(NoSolution) => (),
|
||||
}
|
||||
|
|
|
@ -171,7 +171,7 @@ impl<'tcx> EvalCtxt<'_, 'tcx> {
|
|||
(CandidateSource::Impl(_), _)
|
||||
| (CandidateSource::ParamEnv(_), _)
|
||||
| (CandidateSource::BuiltinImpl, _)
|
||||
| (CandidateSource::AliasBound(_), _) => unimplemented!(),
|
||||
| (CandidateSource::AliasBound(), _) => unimplemented!(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -320,7 +320,7 @@ impl<'tcx> EvalCtxt<'_, 'tcx> {
|
|||
match (candidate.source, other.source) {
|
||||
(CandidateSource::Impl(_), _)
|
||||
| (CandidateSource::ParamEnv(_), _)
|
||||
| (CandidateSource::AliasBound(_), _)
|
||||
| (CandidateSource::AliasBound(), _)
|
||||
| (CandidateSource::BuiltinImpl, _) => unimplemented!(),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue