fn compute_residual(&mut self, current: Stmt) {
    let states_set = self.next_states_stmt(current.clone());
    for state in states_set.next_states() {
      if !self.already_visited(state.clone()) {
        let residual = self.reduce_stmt(current.clone(), state.clone());
        let instant = match residual {
          ResidualStmt::Terminated => None,
          ResidualStmt::Paused => None, // It means that the next instant is `nothing`.
          ResidualStmt::Next(next) => Some(next)
        };
        self.push_instant(instant, state);
      }
    }
  }
/// We first compute all the distinct set of locations states in which `current` could stop.
/// Then, for each possible set of locations, we compute its residual statement.
We first compute all the distinct set of locations states in which `current` could stop.
Then, for each possible set of locations, we compute its residual statement.
We first compute all the distinct set of locations states in which ` current ` could stop . Then for each possible set of locations we compute its residual statement .
fn compute_residual(&mut self, current: Stmt) {
    let states_set = self.next_states_stmt(current.clone());
    for state in states_set.next_states() {
      if !self.already_visited(state.clone()) {
        let residual = self.reduce_stmt(current.clone(), state.clone());
        let instant = match residual {
          ResidualStmt::Terminated => None,
          ResidualStmt::Paused => None, // It means that the next instant is `nothing`.
          ResidualStmt::Next(next) => Some(next)
        };
        self.push_instant(instant, state);
      }
    }
  }
fn compute_residual ( & mut self , current : Stmt ) { let states_set = self . next_states_stmt ( current . clone ( ) ) ; for state in states_set . next_states ( ) { if ! self . already_visited ( state . clone ( ) ) { let residual = self . reduce_stmt ( current . clone ( ) , state . clone ( ) ) ; let instant = match residual { ResidualStmt :: Terminated => None , ResidualStmt :: Paused => None , // It means that the next instant is `nothing`. ResidualStmt :: Next ( next ) => Some ( next ) } ; self . push_instant ( instant , state ) ; } } }
We first compute all the distinct set of locations states in which `current` could stop.
We first compute all the distinct set of locations states in which ` current ` could stop .
&mut self
current
Stmt
&mut self
current
Stmt