A tale of two's complement

With the new range syntax, there was a kind of “enumeration” trait introduced, Step, but it doesn’t consider enumerations that might not have a successor value, i.e. it does not handle types without wraparound.

It seems problematic to me (bug report here) – but it is ultimately tied to how we want to handle overflow.

Is it the user’s responsibility when typing 0i8.. to not take more elements from the range iterator than possible?

Will this blow up in debug builds only – (that risks that clueless users will conclude they just need to use release builds), etc?