Skip to content

Commit e8a2aee

Browse files
committed
Remove DefId from some SelectionCandidate variants
1 parent e42c4d7 commit e8a2aee

File tree

4 files changed

+20
-21
lines changed

4 files changed

+20
-21
lines changed

compiler/rustc_middle/src/traits/select.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ pub enum SelectionCandidate<'tcx> {
115115

116116
ParamCandidate(ty::PolyTraitPredicate<'tcx>),
117117
ImplCandidate(DefId),
118-
AutoImplCandidate(DefId),
118+
AutoImplCandidate,
119119

120120
/// This is a trait matching with a projected type as `Self`, and we found
121121
/// an applicable bound in the trait definition. The `usize` is an index
@@ -143,7 +143,7 @@ pub enum SelectionCandidate<'tcx> {
143143
/// Builtin implementation of `Pointee`.
144144
PointeeCandidate,
145145

146-
TraitAliasCandidate(DefId),
146+
TraitAliasCandidate,
147147

148148
/// Matching `dyn Trait` with a supertrait of `Trait`. The index is the
149149
/// position in the iterator returned by

compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
625625
}
626626
}
627627

628-
_ => candidates.vec.push(AutoImplCandidate(def_id)),
628+
_ => candidates.vec.push(AutoImplCandidate),
629629
}
630630
}
631631
}
@@ -914,7 +914,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
914914
let def_id = obligation.predicate.def_id();
915915

916916
if self.tcx().is_trait_alias(def_id) {
917-
candidates.vec.push(TraitAliasCandidate(def_id));
917+
candidates.vec.push(TraitAliasCandidate);
918918
}
919919
}
920920

compiler/rustc_trait_selection/src/traits/select/confirmation.rs

+8-9
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
6464
ImplSource::UserDefined(self.confirm_impl_candidate(obligation, impl_def_id))
6565
}
6666

67-
AutoImplCandidate(trait_def_id) => {
68-
let data = self.confirm_auto_impl_candidate(obligation, trait_def_id);
67+
AutoImplCandidate => {
68+
let data = self.confirm_auto_impl_candidate(obligation);
6969
ImplSource::AutoImpl(data)
7070
}
7171

@@ -100,8 +100,8 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
100100

101101
PointeeCandidate => ImplSource::Pointee(ImplSourcePointeeData),
102102

103-
TraitAliasCandidate(alias_def_id) => {
104-
let data = self.confirm_trait_alias_candidate(obligation, alias_def_id);
103+
TraitAliasCandidate => {
104+
let data = self.confirm_trait_alias_candidate(obligation);
105105
ImplSource::TraitAlias(data)
106106
}
107107

@@ -317,13 +317,12 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
317317
fn confirm_auto_impl_candidate(
318318
&mut self,
319319
obligation: &TraitObligation<'tcx>,
320-
trait_def_id: DefId,
321320
) -> ImplSourceAutoImplData<PredicateObligation<'tcx>> {
322-
debug!(?obligation, ?trait_def_id, "confirm_auto_impl_candidate");
321+
debug!(?obligation, "confirm_auto_impl_candidate");
323322

324323
let self_ty = self.infcx.shallow_resolve(obligation.predicate.self_ty());
325324
let types = self.constituent_types_for_ty(self_ty);
326-
self.vtable_auto_impl(obligation, trait_def_id, types)
325+
self.vtable_auto_impl(obligation, obligation.predicate.def_id(), types)
327326
}
328327

329328
/// See `confirm_auto_impl_candidate`.
@@ -658,10 +657,10 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
658657
fn confirm_trait_alias_candidate(
659658
&mut self,
660659
obligation: &TraitObligation<'tcx>,
661-
alias_def_id: DefId,
662660
) -> ImplSourceTraitAliasData<'tcx, PredicateObligation<'tcx>> {
663-
debug!(?obligation, ?alias_def_id, "confirm_trait_alias_candidate");
661+
debug!(?obligation, "confirm_trait_alias_candidate");
664662

663+
let alias_def_id = obligation.predicate.def_id();
665664
let predicate = self.infcx().replace_bound_vars_with_placeholders(obligation.predicate);
666665
let trait_ref = predicate.trait_ref;
667666
let trait_def_id = trait_ref.def_id;

compiler/rustc_trait_selection/src/traits/select/mod.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -1150,7 +1150,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
11501150
// const projection
11511151
ProjectionCandidate(_, ty::BoundConstness::ConstIfConst) => {}
11521152
// auto trait impl
1153-
AutoImplCandidate(..) => {}
1153+
AutoImplCandidate => {}
11541154
// generator, this will raise error in other places
11551155
// or ignore error with const_async_blocks feature
11561156
GeneratorCandidate => {}
@@ -1568,7 +1568,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
15681568
// This is a fix for #53123 and prevents winnowing from accidentally extending the
15691569
// lifetime of a variable.
15701570
match (&other.candidate, &victim.candidate) {
1571-
(_, AutoImplCandidate(..)) | (AutoImplCandidate(..), _) => {
1571+
(_, AutoImplCandidate) | (AutoImplCandidate, _) => {
15721572
bug!(
15731573
"default implementations shouldn't be recorded \
15741574
when there are other valid candidates"
@@ -1638,7 +1638,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
16381638
| BuiltinUnsizeCandidate
16391639
| TraitUpcastingUnsizeCandidate(_)
16401640
| BuiltinCandidate { .. }
1641-
| TraitAliasCandidate(..)
1641+
| TraitAliasCandidate
16421642
| ObjectCandidate(_)
16431643
| ProjectionCandidate(..),
16441644
) => !is_global(cand),
@@ -1656,7 +1656,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
16561656
| BuiltinUnsizeCandidate
16571657
| TraitUpcastingUnsizeCandidate(_)
16581658
| BuiltinCandidate { has_nested: true }
1659-
| TraitAliasCandidate(..),
1659+
| TraitAliasCandidate,
16601660
ParamCandidate(ref cand),
16611661
) => {
16621662
// Prefer these to a global where-clause bound
@@ -1686,7 +1686,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
16861686
| BuiltinUnsizeCandidate
16871687
| TraitUpcastingUnsizeCandidate(_)
16881688
| BuiltinCandidate { .. }
1689-
| TraitAliasCandidate(..),
1689+
| TraitAliasCandidate,
16901690
) => true,
16911691

16921692
(
@@ -1698,7 +1698,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
16981698
| BuiltinUnsizeCandidate
16991699
| TraitUpcastingUnsizeCandidate(_)
17001700
| BuiltinCandidate { .. }
1701-
| TraitAliasCandidate(..),
1701+
| TraitAliasCandidate,
17021702
ObjectCandidate(_) | ProjectionCandidate(..),
17031703
) => false,
17041704

@@ -1779,7 +1779,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
17791779
| BuiltinUnsizeCandidate
17801780
| TraitUpcastingUnsizeCandidate(_)
17811781
| BuiltinCandidate { has_nested: true }
1782-
| TraitAliasCandidate(..),
1782+
| TraitAliasCandidate,
17831783
ImplCandidate(_)
17841784
| ClosureCandidate
17851785
| GeneratorCandidate
@@ -1788,7 +1788,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
17881788
| BuiltinUnsizeCandidate
17891789
| TraitUpcastingUnsizeCandidate(_)
17901790
| BuiltinCandidate { has_nested: true }
1791-
| TraitAliasCandidate(..),
1791+
| TraitAliasCandidate,
17921792
) => false,
17931793
}
17941794
}

0 commit comments

Comments
 (0)