rustc_mir_dataflow::framework::lattice

Trait JoinSemiLattice

Source
pub trait JoinSemiLattice: Eq {
    // Required method
    fn join(&mut self, other: &Self) -> bool;
}
Expand description

A partially ordered set that has a least upper bound for any pair of elements in the set.

Required Methods§

Source

fn join(&mut self, other: &Self) -> bool

Computes the least upper bound of two elements, storing the result in self and returning true if self has changed.

The lattice join operator is abbreviated as .

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl JoinSemiLattice for bool

A bool is a “two-point” lattice with true as the top element and false as the bottom:

     true
       |
     false
Source§

fn join(&mut self, other: &Self) -> bool

Source§

impl<I: Idx, T: JoinSemiLattice> JoinSemiLattice for IndexVec<I, T>

A tuple (or list) of lattices is itself a lattice whose least upper bound is the concatenation of the least upper bounds of each element of the tuple (or list).

In other words: (A₀, A₁, …, Aₙ) ∨ (B₀, B₁, …, Bₙ) = (A₀∨B₀, A₁∨B₁, …, Aₙ∨Bₙ)

Source§

fn join(&mut self, other: &Self) -> bool

Source§

impl<T: Idx> JoinSemiLattice for BitSet<T>

A BitSet represents the lattice formed by the powerset of all possible values of the index type T ordered by inclusion. Equivalently, it is a tuple of “two-point” lattices, one for each possible value of T.

Source§

fn join(&mut self, other: &Self) -> bool

Source§

impl<T: Idx> JoinSemiLattice for ChunkedBitSet<T>

Source§

fn join(&mut self, other: &Self) -> bool

Implementors§