private static IndexExtension<CompilerRef, Integer, CompiledFileData> createBackwardUsagesExtension() {
    return new IndexExtension<CompilerRef, Integer, CompiledFileData>() {
      @Override
      public int getVersion() {
        return VERSION;
      }

      @Override
      public @NotNull IndexId<CompilerRef, Integer> getName() {
        return BACK_USAGES;
      }

      @Override
      public @NotNull DataIndexer<CompilerRef, Integer, CompiledFileData> getIndexer() {
        return CompiledFileData::getReferences;
      }

      @Override
      public @NotNull KeyDescriptor<CompilerRef> getKeyDescriptor() {
        return CompilerRefDescriptor.INSTANCE;
      }

      @Override
      public @NotNull DataExternalizer<Integer> getValueExternalizer() {
        return new UnsignedByteExternalizer();
      }
    };
  }
private static IndexExtension<CompilerRef, Integer, CompiledFileData> createBackwardUsagesExtension()