[−][src]Trait rustc_mir::dataflow::framework::visitor::ResultsVisitable

pub trait ResultsVisitable<'tcx> {
    type Direction: Direction;
    type FlowState;
    pub fn new_flow_state(&self, body: &Body<'tcx>) -> Self::FlowState;
pub fn reset_to_block_entry(
        &self,
        state: &mut Self::FlowState,
        block: BasicBlock
    );
pub fn reconstruct_before_statement_effect(
        &self,
        state: &mut Self::FlowState,
        statement: &Statement<'tcx>,
        location: Location
    );
pub fn reconstruct_statement_effect(
        &self,
        state: &mut Self::FlowState,
        statement: &Statement<'tcx>,
        location: Location
    );
pub fn reconstruct_before_terminator_effect(
        &self,
        state: &mut Self::FlowState,
        terminator: &Terminator<'tcx>,
        location: Location
    );
pub fn reconstruct_terminator_effect(
        &self,
        state: &mut Self::FlowState,
        terminator: &Terminator<'tcx>,
        location: Location
    ); }

Things that can be visited by a ResultsVisitor.

This trait exists so that we can visit the results of multiple dataflow analyses simultaneously. DO NOT IMPLEMENT MANUALLY. Instead, use the impl_visitable macro below.

Associated Types

type Direction: Direction[src]

type FlowState[src]

Loading content...

Required methods

pub fn new_flow_state(&self, body: &Body<'tcx>) -> Self::FlowState[src]

Creates an empty FlowState to hold the transient state for these dataflow results.

The value of the newly created FlowState will be overwritten by reset_to_block_entry before it can be observed by a ResultsVisitor.

pub fn reset_to_block_entry(
    &self,
    state: &mut Self::FlowState,
    block: BasicBlock
)
[src]

pub fn reconstruct_before_statement_effect(
    &self,
    state: &mut Self::FlowState,
    statement: &Statement<'tcx>,
    location: Location
)
[src]

pub fn reconstruct_statement_effect(
    &self,
    state: &mut Self::FlowState,
    statement: &Statement<'tcx>,
    location: Location
)
[src]

pub fn reconstruct_before_terminator_effect(
    &self,
    state: &mut Self::FlowState,
    terminator: &Terminator<'tcx>,
    location: Location
)
[src]

pub fn reconstruct_terminator_effect(
    &self,
    state: &mut Self::FlowState,
    terminator: &Terminator<'tcx>,
    location: Location
)
[src]

Loading content...

Implementors

impl<'tcx, A> ResultsVisitable<'tcx> for Results<'tcx, A> where
    A: Analysis<'tcx>, 
[src]

type FlowState = A::Domain

type Direction = A::Direction

impl<'tcx, B, U, E, D: Direction> ResultsVisitable<'tcx> for BorrowckAnalyses<Results<'tcx, B>, Results<'tcx, U>, Results<'tcx, E>> where
    B: Analysis<'tcx, Direction = D>,
    U: Analysis<'tcx, Direction = D>,
    E: Analysis<'tcx, Direction = D>, 
[src]

type Direction = D

type FlowState = BorrowckAnalyses<B::Domain, U::Domain, E::Domain>

Loading content...