original_string: public function isPasswordValid(string $plain, string $encoded, array $options = []): bool
      {
          if($this->getExpectsPlainUserCredentials())
              $plain = parent::encodePassword($plain, $options);
          $response = $this->encodePassword($plain, $options);
          return $this->comparePasswords($encoded, $response);
      }
code: public function isPasswordValid(string $plain, string $encoded, array $options = []): bool
      {
          if($this->getExpectsPlainUserCredentials())
              $plain = parent::encodePassword($plain, $options);
          $response = $this->encodePassword($plain, $options);
          return $this->comparePasswords($encoded, $response);
      }
code_tokens: public function isPasswordValid ( string $ plain , string $ encoded , array $ options = [ ] ) : bool { if ( $ this -> getExpectsPlainUserCredentials ( ) ) $ plain = parent :: encodePassword ( $ plain , $ options ) ; $ response = $ this -> encodePassword ( $ plain , $ options ) ; return $ this -> comparePasswords ( $ encoded , $ response ) ; }
docstring: The Digest encoder is switched because the authorization sent by the browser contains an encoded response hash.
  The encoden needs to encode the stored users credential to compare the response.
  That's why the arguments in this method are switched
  @param string $plain The persistent user's password. If getExpectsPlainUserCredentials() is false, it assumes the credentials as A1
  @param string $encoded
  @param array $options
  @return bool
docstring_tokens: The Digest encoder is switched because the authorization sent by the browser contains an encoded response hash . The encoden needs to encode the stored users credential to compare the response . That s why the arguments in this method are switched