code: private function isStrictOrNullableReturnTypeFunction(Tokens $tokens, $returnIndex)
      {
          $functionIndex = $returnIndex;
          do {
              $functionIndex = $tokens->getPrevTokenOfKind($functionIndex, [[T_FUNCTION]]);
              if (null === $functionIndex) {
                  return false;
              }
              $openingCurlyBraceIndex = $tokens->getNextTokenOfKind($functionIndex, ['{']);
              $closingCurlyBraceIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $openingCurlyBraceIndex);
          } while ($closingCurlyBraceIndex < $returnIndex);
  
          $possibleVoidIndex = $tokens->getPrevMeaningfulToken($openingCurlyBraceIndex);
          $isStrictReturnType = $tokens[$possibleVoidIndex]->isGivenKind(T_STRING) && 'void' !== $tokens[$possibleVoidIndex]->getContent();
  
          $nullableTypeIndex = $tokens->getNextTokenOfKind($functionIndex, [[CT::T_NULLABLE_TYPE]]);
          $isNullableReturnType = null !== $nullableTypeIndex && $nullableTypeIndex < $openingCurlyBraceIndex;
  
          return $isStrictReturnType || $isNullableReturnType;
      }
docs: Is the return within a function with a non-void or nullable return type?
  
  @param Tokens $tokens
  @param int    $returnIndex Current return token index
  
  @return bool