Previously, the commented out code in the DimLvlMap ctor would result in VarSet::add raising an OOB error; which should be impossible because the ctor asserted DimLvlMap::isWF which ensures that all variables occuring in the map are within bounds for the ranks.
The root cause of that bug was the VarSet ctor using SmallBitVector::reserve which does not actually change the size of the bitvectors (hence the subsequent OOB). This is corrected by using any of SmallBitVector::resize, the move-ctor, or the copy-ctor. Since the default-initialized bitvectors being modified/overwritten have size zero, there shouldn't be any significant performance difference between these three implementations.