docs: public void or(final Roaring64NavigableMap x2) {
      boolean firstBucket = true;
  
      for (Entry<Integer, BitmapDataProvider> e2 : x2.highToBitmap.entrySet()) {
        // Keep object to prevent auto-boxing
        Integer high = e2.getKey();
  
        BitmapDataProvider lowBitmap1 = this.highToBitmap.get(high);
  
        BitmapDataProvider lowBitmap2 = e2.getValue();
  
        // TODO Reviewers: is it a good idea to rely on BitmapDataProvider except in methods
        // expecting an actual MutableRoaringBitmap?
        // TODO This code may lead to closing a buffer Bitmap in current Navigable even if current is
        // not on buffer
        if ((lowBitmap1 == null || lowBitmap1 instanceof RoaringBitmap)
            && lowBitmap2 instanceof RoaringBitmap) {
          if (lowBitmap1 == null) {
            // Clone to prevent future modification of this modifying the input Bitmap
            RoaringBitmap lowBitmap2Clone = ((RoaringBitmap) lowBitmap2).clone();
  
            pushBitmapForHigh(high, lowBitmap2Clone);
          } else {
            ((RoaringBitmap) lowBitmap1).or((RoaringBitmap) lowBitmap2);
          }
        } else if ((lowBitmap1 == null || lowBitmap1 instanceof MutableRoaringBitmap)
            && lowBitmap2 instanceof MutableRoaringBitmap) {
          if (lowBitmap1 == null) {
            // Clone to prevent future modification of this modifying the input Bitmap
            BitmapDataProvider lowBitmap2Clone = ((MutableRoaringBitmap) lowBitmap2).clone();
  
  
            pushBitmapForHigh(high, lowBitmap2Clone);
          } else {
            ((MutableRoaringBitmap) lowBitmap1).or((MutableRoaringBitmap) lowBitmap2);
          }
        } else {
          throw new UnsupportedOperationException(
              ".or is not between " + this.getClass() + " and " + lowBitmap2.getClass());
        }
  
        if (firstBucket) {
          firstBucket = false;
  
          // Invalidate the lowest high as lowest not valid
          firstHighNotValid = Math.min(firstHighNotValid, high);
          allValid = false;
        }
      }
    }