Compile-time type hierarchy information in pattern switch

Brian Goetz brian.goetz at oracle.com
Thu Apr 5 19:44:30 UTC 2018


> Is it too harsh to reject the whole class if the assumptions on class 
> hierarchy which were necessary to compile the switch statements used 
> in the class are not valid at runtime?

That is one of the questions!  And the other question is: is this too 
expensive to do this check at runtime, given that it will fail so 
infrequently.

If we can detect it cheaply enough, though, we can also repair the 
situation and fall back to linear testing of patterns.  This seems 
better (we can execute the statement the user wrote) than failing. My 
real question is can I punt on trying to detect it, and still optimize 
the common cases  down to O(1) dispatch....



More information about the amber-spec-experts mailing list