def recur()

in algebird-core/src/main/scala/com/twitter/algebird/immutable/BitSet.scala [200:224]


    def recur(x: BitSet): BitSet =
      x match {
        case leaf @ Leaf(_, _) =>
          if (leaf.isEmpty) null else leaf
        case Branch(o, h, cs0) =>
          var i = 0
          var found: BitSet = null
          while (i < 32 && found == null) {
            val c = cs0(i)
            if (c != null) found = recur(c)
            i += 1
          }
          if (found == null) {
            null
          } else {
            val cs1 = new Array[BitSet](32)
            cs1(i - 1) = found
            while (i < 32) {
              val c = cs0(i)
              if (c != null) cs1(i) = recur(c)
              i += 1
            }
            Branch(o, h, cs1)
          }
      }