Trait rustc_trait_selection::infer::lattice::LatticeDir
source · pub trait LatticeDir<'f, 'tcx>: TypeRelation<'tcx> {
fn infcx(&self) -> &'f InferCtxt<'f, 'tcx>;
fn cause(&self) -> &ObligationCause<'tcx>;
fn add_obligations(
&mut self,
obligations: Vec<Obligation<'tcx, Predicate<'tcx>>, Global>
);
fn define_opaque_types(&self) -> bool;
fn relate_bound(
&mut self,
v: Ty<'tcx>,
a: Ty<'tcx>,
b: Ty<'tcx>
) -> Result<(), TypeError<'tcx>>;
}
Expand description
Trait for returning data about a lattice, and for abstracting over the “direction” of the lattice operation (LUB/GLB).
GLB moves “down” the lattice (to smaller values); LUB moves “up” the lattice (to bigger values).
Required Methods
source
fn cause(&self) -> &ObligationCause<'tcx>
sourcefn add_obligations(
fn add_obligations(
&mut self,
obligations: Vec<Obligation<'tcx, Predicate<'tcx>>, Global>
)
source