File tree 1 file changed +6
-2
lines changed
compiler/rustc_next_trait_solver/src/solve
1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -3,13 +3,17 @@ use rustc_type_ir::inherent::Predicate;
3
3
use rustc_type_ir:: search_graph:: { self , CycleKind , UsageKind } ;
4
4
use rustc_type_ir:: solve:: { CanonicalInput , Certainty , QueryResult } ;
5
5
use rustc_type_ir:: Interner ;
6
+ use std:: marker:: PhantomData ;
6
7
7
8
use super :: inspect;
8
9
use super :: { inspect:: ProofTreeBuilder , FIXPOINT_STEP_LIMIT } ;
9
10
11
+ /// This type is never constructed. We only use it to implement `search_graph::Delegate`
12
+ /// for all types which impl `SolverDelegate` and doing it directly fails in coherence.
13
+ pub ( super ) struct SearchGraphDelegate < D : SolverDelegate > {
14
+ _marker : PhantomData < D > ,
15
+ }
10
16
pub ( super ) type SearchGraph < D > = search_graph:: SearchGraph < SearchGraphDelegate < D > > ;
11
-
12
- pub ( super ) struct SearchGraphDelegate < D : SolverDelegate > ( D ) ;
13
17
impl < D , I > search_graph:: Delegate for SearchGraphDelegate < D >
14
18
where
15
19
D : SolverDelegate < Interner = I > ,
You can’t perform that action at this time.
0 commit comments