private static function isBlacklisted()

in src/api-gen/ScannedDefinitionFilters.php [140:256]


  private static function isBlacklisted(ScannedDefinition $def): bool {
    // In an ideal world, everything in HH\ should be documented,
    // nothing else should be. Things currently there that are internal
    // should be moved to the __SystemLib\ namespace.
    //
    // That's long-term cleanup unlikely to be finished soon and we don't
    // want to block the doc site rewrite on it, so, for now, we have
    // this blacklist.
    //
    // As meta points:
    //  - The xxxAccess interfaces for collections are covered by things like
    //    ConstSet, ConstMap, etc. The others are implementation details.

    // Do not include "HH\" in the blacklist - we automatically strip it.

    $blacklist = keyset[
      /////////////
      // Classes //
      /////////////

      'AppendIterator',
      'ArrayIterator',
      'BuiltinEnum',
      'CachingIterator',
      'CallbackFilterIterator',
      'Client\TypecheckResult',
      'EmptyIterator',
      'FilterIterator',
      'Generator',
      'InfiniteIterator',
      'IntlIterator',
      'IteratorIterator',
      'LimitIterator',
      'MapIterator',
      'MultipleIterator',
      'MySSLContextProvider',
      'NoRewindIterator',
      'ParentIterator',
      'RecursiveArrayIterator',
      'RecursiveCachingIterator',
      'RecursiveCallbackFilterIterator',
      'RecursiveFilterIterator',
      'RecursiveIteratorIterator',
      'RecursiveRegexIterator',
      'RecursiveTreeIterator',
      'ReflectionFunctionAbstract',
      'RegexIterator',
      'ResourceBundle',
      'SessionHandler',
      'SetIterator',
      'SplDoublyLinkedList',
      'SplFixedArray',
      'SplHeap',
      'SplMaxHeap',
      'SplMinHeap',
      'SplObjectStorage',
      'SplPriorityQueue',
      'SplQueue',
      'SplStack',
      'VectorIterator',
      'WaitHandle',

      //////////////////////////
      // Not Actually Classes //
      //////////////////////////

      'dict',
      'keyset',
      'vec',

      ////////////////
      // Interfaces //
      ////////////////

      'ArrayAccess',
      'IteratorAggregate',
      'OuterIterator',
      'RecursiveIterator',
      'SQLListFormatter',
      'SQLScalarFormatter',
      'SeekableIterator',

      ///////////////
      // Functions //
      ///////////////

      'apache_get_config',
      'array_column',
      'array_fill',
      'array_filter',
      'array_key_exists',
      'array_keys',
      'array_values',
      'arsort',
      'asort',
      'call_use_func_array',
      'krsort',
      'ksort',
      'lz4_hccompress',
      'lz4compress',
      'lz4uncompress',
      'lzhccompress',
      'mysql_fetch_result',
      'nzcompress',
      'nzuncompress',
      'rsort',
      'snuncompress',
      'sort',
      'type_structure',
      'uasort',
      'uksort',
      'usort',
    ];

    $name = Str\strip_prefix($def->getName(), "HH\\");
    return C\contains_key($blacklist, $name);
  }