Skip to content

Commit 15d16f1

Browse files
Finish uplifting supertraits
1 parent 66eb346 commit 15d16f1

File tree

4 files changed

+3
-16
lines changed

4 files changed

+3
-16
lines changed

compiler/rustc_next_trait_solver/src/delegate.rs

-6
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,6 @@ pub trait SolverDelegate:
3232
// FIXME: Uplift the leak check into this crate.
3333
fn leak_check(&self, max_input_universe: ty::UniverseIndex) -> Result<(), NoSolution>;
3434

35-
// FIXME: This is only here because elaboration lives in `rustc_infer`!
36-
fn elaborate_supertraits(
37-
cx: Self::Interner,
38-
trait_ref: ty::Binder<Self::Interner, ty::TraitRef<Self::Interner>>,
39-
) -> impl Iterator<Item = ty::Binder<Self::Interner, ty::TraitRef<Self::Interner>>>;
40-
4135
fn try_const_eval_resolve(
4236
&self,
4337
param_env: <Self::Interner as Interner>::ParamEnv,

compiler/rustc_next_trait_solver/src/solve/assembly/mod.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
33
pub(super) mod structural_traits;
44

5+
use rustc_type_ir::elaborate;
56
use rustc_type_ir::fold::TypeFoldable;
67
use rustc_type_ir::inherent::*;
78
use rustc_type_ir::lang_items::TraitSolverLangItem;
@@ -667,7 +668,7 @@ where
667668
// a projection goal.
668669
if let Some(principal) = bounds.principal() {
669670
let principal_trait_ref = principal.with_self_ty(cx, self_ty);
670-
for (idx, assumption) in D::elaborate_supertraits(cx, principal_trait_ref).enumerate() {
671+
for (idx, assumption) in elaborate::supertraits(cx, principal_trait_ref).enumerate() {
671672
candidates.extend(G::probe_and_consider_object_bound_candidate(
672673
self,
673674
CandidateSource::BuiltinImpl(BuiltinImplSource::Object(idx)),

compiler/rustc_next_trait_solver/src/solve/trait_goals.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -787,7 +787,7 @@ where
787787
));
788788
} else if let Some(a_principal) = a_data.principal() {
789789
for new_a_principal in
790-
D::elaborate_supertraits(self.cx(), a_principal.with_self_ty(cx, a_ty)).skip(1)
790+
elaborate::supertraits(self.cx(), a_principal.with_self_ty(cx, a_ty)).skip(1)
791791
{
792792
responses.extend(self.consider_builtin_upcast_to_principal(
793793
goal,

compiler/rustc_trait_selection/src/solve/delegate.rs

-8
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ use rustc_infer::infer::canonical::{
88
};
99
use rustc_infer::infer::{InferCtxt, RegionVariableOrigin, TyCtxtInferExt};
1010
use rustc_infer::traits::solve::Goal;
11-
use rustc_infer::traits::util::supertraits;
1211
use rustc_infer::traits::{ObligationCause, Reveal};
1312
use rustc_middle::ty::fold::TypeFoldable;
1413
use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitableExt as _};
@@ -82,13 +81,6 @@ impl<'tcx> rustc_next_trait_solver::delegate::SolverDelegate for SolverDelegate<
8281
self.0.leak_check(max_input_universe, None).map_err(|_| NoSolution)
8382
}
8483

85-
fn elaborate_supertraits(
86-
interner: TyCtxt<'tcx>,
87-
trait_ref: ty::Binder<'tcx, ty::TraitRef<'tcx>>,
88-
) -> impl Iterator<Item = ty::Binder<'tcx, ty::TraitRef<'tcx>>> {
89-
supertraits(interner, trait_ref)
90-
}
91-
9284
fn try_const_eval_resolve(
9385
&self,
9486
param_env: ty::ParamEnv<'tcx>,

0 commit comments

Comments
 (0)