Skip to content

Commit 9dca9ad

Browse files
Get rid of trait_ref_is_knowable from delegate
1 parent e639d0c commit 9dca9ad

File tree

3 files changed

+4
-21
lines changed

3 files changed

+4
-21
lines changed

compiler/rustc_next_trait_solver/src/delegate.rs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
use std::fmt::Debug;
21
use std::ops::Deref;
32

43
use rustc_type_ir::fold::TypeFoldable;
54
use rustc_type_ir::solve::{Certainty, Goal, NoSolution, SolverMode};
65
use rustc_type_ir::{self as ty, InferCtxtLike, Interner};
76

87
pub trait SolverDelegate:
9-
Deref<Target: InferCtxtLike<Interner = <Self as SolverDelegate>::Interner>> + Sized
8+
Deref<Target: InferCtxtLike<Interner = <Self as SolverDelegate>::Interner> + Sized> + Sized
109
{
1110
type Interner: Interner;
1211
fn cx(&self) -> Self::Interner {
@@ -99,14 +98,6 @@ pub trait SolverDelegate:
9998

10099
fn reset_opaque_types(&self);
101100

102-
fn trait_ref_is_knowable<E: Debug>(
103-
&self,
104-
trait_ref: ty::TraitRef<Self::Interner>,
105-
lazily_normalize_ty: impl FnMut(
106-
<Self::Interner as Interner>::Ty,
107-
) -> Result<<Self::Interner as Interner>::Ty, E>,
108-
) -> Result<bool, E>;
109-
110101
fn fetch_eligible_assoc_item(
111102
&self,
112103
param_env: <Self::Interner as Interner>::ParamEnv,

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use rustc_type_ir::{self as ty, CanonicalVarValues, InferCtxtLike, Interner};
1111
use rustc_type_ir_macros::{Lift_Generic, TypeFoldable_Generic, TypeVisitable_Generic};
1212
use tracing::{instrument, trace};
1313

14+
use crate::coherence;
1415
use crate::delegate::SolverDelegate;
1516
use crate::solve::inspect::{self, ProofTreeBuilder};
1617
use crate::solve::search_graph::SearchGraph;
@@ -906,7 +907,8 @@ where
906907
) -> Result<bool, NoSolution> {
907908
let delegate = self.delegate;
908909
let lazily_normalize_ty = |ty| self.structurally_normalize_ty(param_env, ty);
909-
delegate.trait_ref_is_knowable(trait_ref, lazily_normalize_ty)
910+
coherence::trait_ref_is_knowable(&**delegate, trait_ref, lazily_normalize_ty)
911+
.map(|is_knowable| is_knowable.is_ok())
910912
}
911913

912914
pub(super) fn fetch_eligible_assoc_item(

compiler/rustc_trait_selection/src/solve/delegate.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitableExt as _};
1515
use rustc_span::{ErrorGuaranteed, Span, DUMMY_SP};
1616
use rustc_type_ir::solve::{Certainty, NoSolution, SolverMode};
1717

18-
use crate::traits::coherence::trait_ref_is_knowable;
1918
use crate::traits::specialization_graph;
2019

2120
#[repr(transparent)]
@@ -200,15 +199,6 @@ impl<'tcx> rustc_next_trait_solver::delegate::SolverDelegate for SolverDelegate<
200199
let _ = self.take_opaque_types();
201200
}
202201

203-
fn trait_ref_is_knowable<E: std::fmt::Debug>(
204-
&self,
205-
trait_ref: ty::TraitRef<'tcx>,
206-
lazily_normalize_ty: impl FnMut(Ty<'tcx>) -> Result<Ty<'tcx>, E>,
207-
) -> Result<bool, E> {
208-
trait_ref_is_knowable(&self.0, trait_ref, lazily_normalize_ty)
209-
.map(|is_knowable| is_knowable.is_ok())
210-
}
211-
212202
fn fetch_eligible_assoc_item(
213203
&self,
214204
param_env: ty::ParamEnv<'tcx>,

0 commit comments

Comments
 (0)