Description
public static <E extends Enum<E>> long generateBitVector(Class<E> enumClass, Iterable<E> values) {
Should be Iterable<? extends E>.
This is because although no subclasses of E can exist, the "? extends" is a common idiom for marking the collection as readonly, or not "owned" by the current object.