> Secondly, it's hard to imagine there being any unforeseen consequences of > switching on a long. Here, I don't really know how to think it through yet. I > would appreciate any "here's how we know that the changes we need to support > this will have no user-visible consequences at all except for X, Y, and Z" > type of explanation we have (apologies if I missed it).
Since you’re always on the lookout for “how can we use the Google codebase to answer questions about this”, here’s one: look for classes that implement the “type safe enum pattern” — ones with an inaccessible constructor, and a pile of pre-baked instances stuffed in static fields. Then ask yourself, why wasn’t this class an enum? And ask: could some of the complexity of that class go away with enhanced enums?