flux_refineck::checker

Trait Mode

Source
pub(crate) trait Mode: Sized {
    const NAME: &str;

    // Required methods
    fn enter_basic_block<'ck, 'genv, 'tcx>(
        ck: &mut Checker<'ck, 'genv, 'tcx, Self>,
        infcx: &mut InferCtxt<'_, 'genv, 'tcx>,
        bb: BasicBlock,
    ) -> TypeEnv<'ck>;
    fn check_goto_join_point<'genv, 'tcx>(
        ck: &mut Checker<'_, 'genv, 'tcx, Self>,
        infcx: InferCtxt<'_, 'genv, 'tcx>,
        env: TypeEnv<'_>,
        terminator_span: Span,
        target: BasicBlock,
    ) -> Result<bool, CheckerError>;
    fn clear(ck: &mut Checker<'_, '_, '_, Self>, bb: BasicBlock);
}

Required Associated Constants§

Source

const NAME: &str

Required Methods§

Source

fn enter_basic_block<'ck, 'genv, 'tcx>( ck: &mut Checker<'ck, 'genv, 'tcx, Self>, infcx: &mut InferCtxt<'_, 'genv, 'tcx>, bb: BasicBlock, ) -> TypeEnv<'ck>

Source

fn check_goto_join_point<'genv, 'tcx>( ck: &mut Checker<'_, 'genv, 'tcx, Self>, infcx: InferCtxt<'_, 'genv, 'tcx>, env: TypeEnv<'_>, terminator_span: Span, target: BasicBlock, ) -> Result<bool, CheckerError>

Source

fn clear(ck: &mut Checker<'_, '_, '_, Self>, bb: BasicBlock)

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 Mode for RefineMode

Source§

const NAME: &str = "refine"

Source§

impl Mode for ShapeMode

Source§

const NAME: &str = "shape"