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

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

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

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

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