code: protected function applyFix(\SplFileInfo $file, Tokens $tokens)
      {
          foreach ($tokens as $index => $token) {
              if (!$token->isGivenKind(T_DOC_COMMENT)) {
                  continue;
              }
  
              $nextIndex = $tokens->getNextMeaningfulToken($index);
  
              // skip if there is no next token or if next token is block end `}`
              if (null === $nextIndex || $tokens[$nextIndex]->equals('}')) {
                  continue;
              }
  
              $prevIndex = $index - 1;
              $prevToken = $tokens[$prevIndex];
  
              // ignore inline docblocks
              if (
                  $prevToken->isGivenKind(T_OPEN_TAG)
                  || ($prevToken->isWhitespace(" \t") && !$tokens[$index - 2]->isGivenKind(T_OPEN_TAG))
                  || $prevToken->equalsAny([';', ',', '{', '('])
              ) {
                  continue;
              }
  
              $indent = '';
              if ($tokens[$nextIndex - 1]->isWhitespace()) {
                  $indent = Utils::calculateTrailingWhitespaceIndent($tokens[$nextIndex - 1]);
              }
  
              $newPrevContent = $this->fixWhitespaceBeforeDocblock($prevToken->getContent(), $indent);
              if ($newPrevContent) {
                  if ($prevToken->isArray()) {
                      $tokens[$prevIndex] = new Token([$prevToken->getId(), $newPrevContent]);
                  } else {
                      $tokens[$prevIndex] = new Token($newPrevContent);
                  }
              } else {
                  $tokens->clearAt($prevIndex);
              }
  
              $tokens[$index] = new Token([T_DOC_COMMENT, $this->fixDocBlock($token->getContent(), $indent)]);
          }
      }
docs: {@inheritdoc}