On 10/12/2018 23:58, Brian Goetz wrote:
If we restrict this only to enums, of course this would be a non-issue; as you 
say, enums are non-generic right now, so we have a clean slate (assuming we're 
ok with the asymmetry).


There’s an even more conservative option: restrict this only to the type variable of 
Enum<T extends Enum<T>>, not just to the type variables of all supertypes of an 
enum.  Then, the asymmetry is undetectable, in that it is illegal for a non-enum class to 
extend Enum, right?

Yes, that would be the most conservative. If we took that path, I think a more direct way to describe/specify it, is to say that a raw enum reference (e.g. Foo) has a special direct supertype Enum<Foo> and leave all other rules untouched.

Maurizio

Reply via email to