And I even dare ask this: can we maybe retire at least some of the raw types legacy somehow? I can't say I've explored that direction in any real depth, but maybe someone else did?


I don't think this would get us very far, because we're stepping back into the same situation that gave rise to raw types in the first place: the desire for gradual compatible migration to anyfied generics. In fact, we now have three transition modes:

 - (existing) non-generic to erased-generic
 - (new) erased-generic to any-generic
 - (new) non-generic to any-generic

Taking the last case, if you go from "class Foo" to "class Foo<any T>", you still want gradual migration compatibility for clients and subclasses. Which means some sort of "raw type" is needed, so we have a way to interpret occurrences of "Foo" in clients and subclasses after Foo has been any-generified.


Reply via email to