public @NotNull SearchId @Nullable [] getDirectInheritorsNames(@NotNull CompilerRefProvider compilerRefFunction) {
    if (!myReadDataLock.tryLock()) {
      return null;
    }
    try {
      if (myReader == null) {
        return null;
      }
      try {
        CompilerRef hierarchyElement = compilerRefFunction.provide(myReader.getNameEnumerator());
        if (hierarchyElement == null) {
          return null;
        }
        return myReader.getDirectInheritorsNames(hierarchyElement);
      }
      catch (RuntimeException | StorageException | IOException e) {
        return onException(e, "direct inheritors names");
      }
    }
    finally {
      myReadDataLock.unlock();
    }
  }
public @NotNull SearchId @Nullable [] getDirectInheritorsNames(@NotNull CompilerRefProvider compilerRefFunction)