code: private function fixAssert(array $map, Tokens $tokens, $index, $method)
      {
          $sequence = $tokens->findSequence(
              [
                  [T_STRING, $method],
                  '(',
              ],
              $index
          );
  
          if (null === $sequence) {
              return null;
          }
  
          $sequenceIndexes = array_keys($sequence);
          $operatorIndex = $tokens->getPrevMeaningfulToken($sequenceIndexes[0]);
          $referenceIndex = $tokens->getPrevMeaningfulToken($operatorIndex);
          if (
              !($tokens[$operatorIndex]->equals([T_OBJECT_OPERATOR, '->']) && $tokens[$referenceIndex]->equals([T_VARIABLE, '$this']))
              && !($tokens[$operatorIndex]->equals([T_DOUBLE_COLON, '::']) && $tokens[$referenceIndex]->equals([T_STRING, 'self']))
              && !($tokens[$operatorIndex]->equals([T_DOUBLE_COLON, '::']) && $tokens[$referenceIndex]->equals([T_STATIC, 'static']))
          ) {
              return null;
          }
  
          $sequenceIndexes[2] = $tokens->getNextMeaningfulToken($sequenceIndexes[1]);
          $firstParameterToken = $tokens[$sequenceIndexes[2]];
  
          if (!$firstParameterToken->isNativeConstant()) {
              return $sequenceIndexes[2];
          }
  
          $sequenceIndexes[3] = $tokens->getNextMeaningfulToken($sequenceIndexes[2]);
  
          // return if first method argument is an expression, not value
          if (!$tokens[$sequenceIndexes[3]]->equals(',')) {
              return $sequenceIndexes[3];
          }
  
          $tokens[$sequenceIndexes[0]] = new Token([T_STRING, $map[strtolower($firstParameterToken->getContent())]]);
          $tokens->clearRange($sequenceIndexes[2], $tokens->getNextNonWhitespace($sequenceIndexes[3]) - 1);
  
          return $sequenceIndexes[3];
      }
docs: @param array<string, string> $map
  @param Tokens                $tokens
  @param int                   $index
  @param string                $method
  
  @return null|int