Skip to content

Commit 809acd2

Browse files
committed
SearchGraphDelegate: use PhantomData + comment
1 parent d2c6922 commit 809acd2

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

compiler/rustc_next_trait_solver/src/solve/search_graph.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@ use rustc_type_ir::inherent::Predicate;
33
use rustc_type_ir::search_graph::{self, CycleKind, UsageKind};
44
use rustc_type_ir::solve::{CanonicalInput, Certainty, QueryResult};
55
use rustc_type_ir::Interner;
6+
use std::marker::PhantomData;
67

78
use super::inspect;
89
use super::{inspect::ProofTreeBuilder, FIXPOINT_STEP_LIMIT};
910

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+
}
1016
pub(super) type SearchGraph<D> = search_graph::SearchGraph<SearchGraphDelegate<D>>;
11-
12-
pub(super) struct SearchGraphDelegate<D: SolverDelegate>(D);
1317
impl<D, I> search_graph::Delegate for SearchGraphDelegate<D>
1418
where
1519
D: SolverDelegate<Interner = I>,

0 commit comments

Comments
 (0)