pub trait LatticeDir<'f, 'tcx>: TypeRelation<'tcx> {
    fn infcx(&self) -> &'f InferCtxt<'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§

Implementors§