private static IndexExtension<SignatureData, Collection<CompilerRef>, CompiledFileData> createBackwardSignatureExtension() {
    return new IndexExtension<SignatureData, Collection<CompilerRef>, CompiledFileData>() {
      @Override
      public @NotNull IndexId<SignatureData, Collection<CompilerRef>> getName() {
        return BACK_MEMBER_SIGN;
      }

      @Override
      public @NotNull DataIndexer<SignatureData, Collection<CompilerRef>, CompiledFileData> getIndexer() {
        return CompiledFileData::getSignatureData;
      }

      @Override
      public @NotNull KeyDescriptor<SignatureData> getKeyDescriptor() {
        return createSignatureDataDescriptor();
      }

      @Override
      public @NotNull DataExternalizer<Collection<CompilerRef>> getValueExternalizer() {
        return createCompilerRefSeqExternalizer();
      }

      @Override
      public int getVersion() {
        return VERSION;
      }
    };
  }
private static IndexExtension<SignatureData, Collection<CompilerRef>, CompiledFileData> createBackwardSignatureExtension()