code: protected function applyFix(\SplFileInfo $file, Tokens $tokens)
      {
          $isInNamespace = false;
          $isImported = false; // e.g. use DateTime;
  
          for ($index = 0, $limit = $tokens->count(); $index < $limit; ++$index) {
              $token = $tokens[$index];
  
              if ($token->isGivenKind(T_NAMESPACE)) {
                  $isInNamespace = true;
  
                  continue;
              }
  
              if ($token->isGivenKind(T_USE) && $isInNamespace) {
                  $nextIndex = $tokens->getNextMeaningfulToken($index);
                  if ('datetime' !== strtolower($tokens[$nextIndex]->getContent())) {
                      continue;
                  }
                  $nextNextIndex = $tokens->getNextMeaningfulToken($nextIndex);
                  if ($tokens[$nextNextIndex]->equals(';')) {
                      $isImported = true;
                  }
  
                  $index = $nextNextIndex;
  
                  continue;
              }
  
              if (!$token->isGivenKind(T_STRING)) {
                  continue;
              }
  
              $lowercaseContent = strtolower($token->getContent());
  
              if ('datetime' === $lowercaseContent) {
                  $this->fixClassUsage($tokens, $index, $isInNamespace, $isImported);
                  $limit = $tokens->count(); // update limit, as fixing class usage may insert new token
              } elseif ('date_create' === $lowercaseContent) {
                  $this->fixFunctionUsage($tokens, $index, 'date_create_immutable');
              } elseif ('date_create_from_format' === $lowercaseContent) {
                  $this->fixFunctionUsage($tokens, $index, 'date_create_immutable_from_format');
              }
          }
      }
docs: {@inheritdoc}