Trait Analysis

Source
pub trait Analysis<'lt>: Sized {
    type SetType: Idx + From<usize>;
    type Direction: Direction<'lt>;

    // Required methods
    fn transfer_function(
        &mut self,
        in_set: &BitSet<Self::SetType>,
        out_set: &mut BitSet<Self::SetType>,
        basic_bock: BasicBlockId,
        cfg: &ControlFlowGraph,
    );
    fn max_idx(&self) -> Self::SetType;

    // Provided method
    fn join(
        &mut self,
        inout_set: &mut BitSet<Self::SetType>,
        in_set: &BitSet<Self::SetType>,
    ) { ... }
}

Required Associated Types§

Required Methods§

Source

fn transfer_function( &mut self, in_set: &BitSet<Self::SetType>, out_set: &mut BitSet<Self::SetType>, basic_bock: BasicBlockId, cfg: &ControlFlowGraph, )

Source

fn max_idx(&self) -> Self::SetType

Provided Methods§

Source

fn join( &mut self, inout_set: &mut BitSet<Self::SetType>, in_set: &BitSet<Self::SetType>, )

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.

Implementors§

Source§

impl<'lt, A: GenKillAnalysis<'lt>> Analysis<'lt> for GenKillEngine<'lt, A>