original_string: public function is_blocked_by_previous_question($slot) {
          return $slot > 1 && isset($this->slots[$slot]) && $this->slots[$slot]->requireprevious &&
                  !$this->slots[$slot]->section->shufflequestions &&
                  !$this->slots[$slot - 1]->section->shufflequestions &&
                  $this->get_navigation_method() != QUIZ_NAVMETHOD_SEQ &&
                  !$this->get_question_state($slot - 1)->is_finished() &&
                  $this->quba->can_question_finish_during_attempt($slot - 1);
      }
code: public function is_blocked_by_previous_question($slot) {
          return $slot > 1 && isset($this->slots[$slot]) && $this->slots[$slot]->requireprevious &&
                  !$this->slots[$slot]->section->shufflequestions &&
                  !$this->slots[$slot - 1]->section->shufflequestions &&
                  $this->get_navigation_method() != QUIZ_NAVMETHOD_SEQ &&
                  !$this->get_question_state($slot - 1)->is_finished() &&
                  $this->quba->can_question_finish_during_attempt($slot - 1);
      }
code_tokens: public function is_blocked_by_previous_question ( $ slot ) { return $ slot > 1 && isset ( $ this -> slots [ $ slot ] ) && $ this -> slots [ $ slot ] -> requireprevious && ! $ this -> slots [ $ slot ] -> section -> shufflequestions && ! $ this -> slots [ $ slot - 1 ] -> section -> shufflequestions && $ this -> get_navigation_method ( ) != QUIZ_NAVMETHOD_SEQ && ! $ this -> get_question_state ( $ slot - 1 ) -> is_finished ( ) && $ this -> quba -> can_question_finish_during_attempt ( $ slot - 1 ) ; }
docstring: Checks whether the question in this slot requires the previous question to have been completed.
  
  @param int $slot the number used to identify this question within this attempt.
  @return bool whether the previous question must have been completed before this one can be seen.
docstring_tokens: Checks whether the question in this slot requires the previous question to have been completed .