@Nullable
  private static Map<IdIndexEntry, Integer> calculateIdEntriesParsingConstantPool(@NotNull FileContent inputData) {
    IdDataConsumer consumer = new IdDataConsumer();
    // optimised to avoid creation of list for every UTF8 entry
    IntList startInclList = new IntArrayList();
    IntList endExclList = new IntArrayList();
    ConstantPoolParser parser = new ConstantPoolParser(new DataInputStream(new ByteArrayInputStream(inputData.getContent())), str -> {
      ProgressManager.checkCanceled();
      if (str.isEmpty()) return;
      // it is likely a method signature, we don't need to handle it because all its parts will it is possible to find in the other entries.
      if (str.charAt(0) == '(') return;

      if (JvmIdentifierUtil.collectJvmIdentifiers(str, (sequence, startIncl, endExcl) -> {
        startInclList.add(startIncl);
        endExclList.add(startIncl);
      })) {
        for (int i = 0; i < startInclList.size(); i++) {
          consumer.addOccurrence(str, startInclList.getInt(i), endExclList.getInt(i), UsageSearchContext.IN_CODE);
        }
      }
      startInclList.clear();
      endExclList.clear();
    });
    try {
      parser.parse();
    }
    catch (IOException | ConstantPoolParser.ClassFormatException e) {
      LOG.warn("Exception while handling file " + inputData.getFileName(), e);
      return null;
    }
    return consumer.getResult();
  }
@Nullable
  private static Map<IdIndexEntry, Integer> calculateIdEntriesParsingConstantPool(@NotNull FileContent inputData)