pub trait LatticeDir<'f, 'tcx>: ObligationEmittingRelation<'tcx> {
    // Required methods
    fn infcx(&self) -> &'f InferCtxt<'tcx>;
    fn cause(&self) -> &ObligationCause<'tcx>;
    fn define_opaque_types(&self) -> DefineOpaqueTypes;
    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 infcx(&self) -> &'f InferCtxt<'tcx>

source

fn cause(&self) -> &ObligationCause<'tcx>

source

fn define_opaque_types(&self) -> DefineOpaqueTypes

source

fn relate_bound( &mut self, v: Ty<'tcx>, a: Ty<'tcx>, b: Ty<'tcx> ) -> Result<(), TypeError<'tcx>>

Implementors§