pub fn step(&mut self) -> EvalResult<'tcx, bool> {
        if self.stack.is_empty() {
            return Ok(false);
        }

        let block = self.frame().block;
        let stmt_id = self.frame().stmt;
        let mir = self.mir();
        let basic_block = &mir.basic_blocks()[block];

        let old_frames = self.cur_frame();

        if let Some(stmt) = basic_block.statements.get(stmt_id) {
            assert_eq!(old_frames, self.cur_frame());
            self.statement(stmt)?;
            return Ok(true);
        }

        self.inc_step_counter_and_detect_loops()?;

        let terminator = basic_block.terminator();
        assert_eq!(old_frames, self.cur_frame());
        self.terminator(terminator)?;
        Ok(true)
    }
/// Returns true as long as there are more things to do.
Returns true as long as there are more things to do.
Returns true as long as there are more things to do .
pub fn step(&mut self) -> EvalResult<'tcx, bool> {
        if self.stack.is_empty() {
            return Ok(false);
        }
        let block = self.frame().block;
        let stmt_id = self.frame().stmt;
        let mir = self.mir();
        let basic_block = &mir.basic_blocks()[block];
        let old_frames = self.cur_frame();
        if let Some(stmt) = basic_block.statements.get(stmt_id) {
            assert_eq!(old_frames, self.cur_frame());
            self.statement(stmt)?;
            return Ok(true);
        }
        self.inc_step_counter_and_detect_loops()?;
        let terminator = basic_block.terminator();
        assert_eq!(old_frames, self.cur_frame());
        self.terminator(terminator)?;
        Ok(true)
    }
pub fn step ( & mut self ) -> EvalResult < ' tcx , bool > { if self . stack . is_empty ( ) { return Ok ( false ) ; } let block = self . frame ( ) . block ; let stmt_id = self . frame ( ) . stmt ; let mir = self . mir ( ) ; let basic_block = & mir . basic_blocks ( ) [ block ] ; let old_frames = self . cur_frame ( ) ; if let Some ( stmt ) = basic_block . statements . get ( stmt_id ) { assert_eq ! ( old_frames self cur_frame ( ) ) ; self . statement ( stmt ) ? ; return Ok ( true ) ; } self . inc_step_counter_and_detect_loops ( ) ? ; let terminator = basic_block . terminator ( ) ; assert_eq ! ( old_frames self cur_frame ( ) ) ; self . terminator ( terminator ) ? ; Ok ( true ) }
Returns true as long as there are more things to do.
Returns true as long as there are more things to do .
&mut self