Skip to content

Commit 42571c4

Browse files
yeet ImplSource::TraitAlias too
1 parent db235a0 commit 42571c4

File tree

5 files changed

+8
-45
lines changed

5 files changed

+8
-45
lines changed

compiler/rustc_middle/src/traits/mod.rs

-19
Original file line numberDiff line numberDiff line change
@@ -660,9 +660,6 @@ pub enum ImplSource<'tcx, N> {
660660

661661
/// ImplSource for trait upcasting coercion
662662
TraitUpcasting(ImplSourceTraitUpcastingData<N>),
663-
664-
/// ImplSource for a trait alias.
665-
TraitAlias(ImplSourceTraitAliasData<'tcx, N>),
666663
}
667664

668665
impl<'tcx, N> ImplSource<'tcx, N> {
@@ -671,7 +668,6 @@ impl<'tcx, N> ImplSource<'tcx, N> {
671668
ImplSource::UserDefined(i) => i.nested,
672669
ImplSource::Param(n, _) | ImplSource::Builtin(n) => n,
673670
ImplSource::Object(d) => d.nested,
674-
ImplSource::TraitAlias(d) => d.nested,
675671
ImplSource::TraitUpcasting(d) => d.nested,
676672
}
677673
}
@@ -681,7 +677,6 @@ impl<'tcx, N> ImplSource<'tcx, N> {
681677
ImplSource::UserDefined(i) => &i.nested,
682678
ImplSource::Param(n, _) | ImplSource::Builtin(n) => &n,
683679
ImplSource::Object(d) => &d.nested,
684-
ImplSource::TraitAlias(d) => &d.nested,
685680
ImplSource::TraitUpcasting(d) => &d.nested,
686681
}
687682
}
@@ -691,7 +686,6 @@ impl<'tcx, N> ImplSource<'tcx, N> {
691686
ImplSource::UserDefined(i) => &mut i.nested,
692687
ImplSource::Param(n, _) | ImplSource::Builtin(n) => n,
693688
ImplSource::Object(d) => &mut d.nested,
694-
ImplSource::TraitAlias(d) => &mut d.nested,
695689
ImplSource::TraitUpcasting(d) => &mut d.nested,
696690
}
697691
}
@@ -713,11 +707,6 @@ impl<'tcx, N> ImplSource<'tcx, N> {
713707
vtable_base: o.vtable_base,
714708
nested: o.nested.into_iter().map(f).collect(),
715709
}),
716-
ImplSource::TraitAlias(d) => ImplSource::TraitAlias(ImplSourceTraitAliasData {
717-
alias_def_id: d.alias_def_id,
718-
substs: d.substs,
719-
nested: d.nested.into_iter().map(f).collect(),
720-
}),
721710
ImplSource::TraitUpcasting(d) => {
722711
ImplSource::TraitUpcasting(ImplSourceTraitUpcastingData {
723712
vtable_vptr_slot: d.vtable_vptr_slot,
@@ -773,14 +762,6 @@ pub struct ImplSourceObjectData<N> {
773762
pub nested: Vec<N>,
774763
}
775764

776-
#[derive(Clone, PartialEq, Eq, TyEncodable, TyDecodable, HashStable, Lift)]
777-
#[derive(TypeFoldable, TypeVisitable)]
778-
pub struct ImplSourceTraitAliasData<'tcx, N> {
779-
pub alias_def_id: DefId,
780-
pub substs: SubstsRef<'tcx>,
781-
pub nested: Vec<N>,
782-
}
783-
784765
#[derive(Clone, Debug, PartialEq, Eq, Hash, HashStable, PartialOrd, Ord)]
785766
pub enum ObjectSafetyViolation {
786767
/// `Self: Sized` declared on the trait.

compiler/rustc_middle/src/traits/structural_impls.rs

-12
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSource<'tcx, N> {
1717
write!(f, "ImplSourceParamData({:?}, {:?})", n, ct)
1818
}
1919

20-
super::ImplSource::TraitAlias(ref d) => write!(f, "{:?}", d),
21-
2220
super::ImplSource::TraitUpcasting(ref d) => write!(f, "{:?}", d),
2321
}
2422
}
@@ -53,13 +51,3 @@ impl<N: fmt::Debug> fmt::Debug for traits::ImplSourceObjectData<N> {
5351
)
5452
}
5553
}
56-
57-
impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceTraitAliasData<'tcx, N> {
58-
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
59-
write!(
60-
f,
61-
"ImplSourceTraitAliasData(alias_def_id={:?}, substs={:?}, nested={:?})",
62-
self.alias_def_id, self.substs, self.nested
63-
)
64-
}
65-
}

compiler/rustc_trait_selection/src/traits/project.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -1721,7 +1721,6 @@ fn assemble_candidates_from_impls<'cx, 'tcx>(
17211721
};
17221722

17231723
let eligible = match &impl_source {
1724-
super::ImplSource::TraitAlias(_) => true,
17251724
super::ImplSource::UserDefined(impl_data) => {
17261725
// We have to be careful when projecting out of an
17271726
// impl because of specialization. If we are not in
@@ -2013,8 +2012,7 @@ fn confirm_select_candidate<'cx, 'tcx>(
20132012
}
20142013
super::ImplSource::Object(_)
20152014
| super::ImplSource::Param(..)
2016-
| super::ImplSource::TraitUpcasting(_)
2017-
| super::ImplSource::TraitAlias(..) => {
2015+
| super::ImplSource::TraitUpcasting(_) => {
20182016
// we don't create Select candidates with this kind of resolution
20192017
span_bug!(
20202018
obligation.cause.span,

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

+6-8
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,9 @@ use crate::traits::vtable::{
2727
};
2828
use crate::traits::{
2929
BuiltinDerivedObligation, ImplDerivedObligation, ImplDerivedObligationCause, ImplSource,
30-
ImplSourceObjectData, ImplSourceTraitAliasData, ImplSourceTraitUpcastingData,
31-
ImplSourceUserDefinedData, Normalized, Obligation, ObligationCause,
32-
OutputTypeParameterMismatch, PredicateObligation, Selection, SelectionError,
33-
TraitNotObjectSafe, TraitObligation, Unimplemented,
30+
ImplSourceObjectData, ImplSourceTraitUpcastingData, ImplSourceUserDefinedData, Normalized,
31+
Obligation, ObligationCause, OutputTypeParameterMismatch, PredicateObligation, Selection,
32+
SelectionError, TraitNotObjectSafe, TraitObligation, Unimplemented,
3433
};
3534

3635
use super::BuiltinImplConditions;
@@ -105,7 +104,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
105104

106105
TraitAliasCandidate => {
107106
let data = self.confirm_trait_alias_candidate(obligation);
108-
ImplSource::TraitAlias(data)
107+
ImplSource::Builtin(data)
109108
}
110109

111110
BuiltinObjectCandidate => {
@@ -721,10 +720,9 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
721720
fn confirm_trait_alias_candidate(
722721
&mut self,
723722
obligation: &TraitObligation<'tcx>,
724-
) -> ImplSourceTraitAliasData<'tcx, PredicateObligation<'tcx>> {
723+
) -> Vec<PredicateObligation<'tcx>> {
725724
debug!(?obligation, "confirm_trait_alias_candidate");
726725

727-
let alias_def_id = obligation.predicate.def_id();
728726
let predicate = self.infcx.instantiate_binder_with_placeholders(obligation.predicate);
729727
let trait_ref = predicate.trait_ref;
730728
let trait_def_id = trait_ref.def_id;
@@ -741,7 +739,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
741739

742740
debug!(?trait_def_id, ?trait_obligations, "trait alias obligations");
743741

744-
ImplSourceTraitAliasData { alias_def_id, substs, nested: trait_obligations }
742+
trait_obligations
745743
}
746744

747745
fn confirm_generator_candidate(

compiler/rustc_ty_utils/src/instance.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -293,9 +293,7 @@ fn resolve_associated_item<'tcx>(
293293
None
294294
}
295295
}
296-
traits::ImplSource::Param(..)
297-
| traits::ImplSource::TraitAlias(..)
298-
| traits::ImplSource::TraitUpcasting(_) => None,
296+
traits::ImplSource::Param(..) | traits::ImplSource::TraitUpcasting(_) => None,
299297
})
300298
}
301299

0 commit comments

Comments
 (0)