RFR 8203488: Remove error generation from TransTypes

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Mon May 21 20:17:24 UTC 2018



On 21/05/18 21:09, Maurizio Cimadamore wrote:
> That's an option too, either error or warning.
One possibility here would be to force users to use --release when using 
either MethodHandle or VarHandle. E.g. you can either specify no 
-source/-target combo or, if you need to cross-compile, you do so with 
--release. That way you will be prevented from using API points which 
are unsupported at a given source/target level. But maybe that's too harsh.

Also, thinking more on VarHandle, I believe what we have in VarHandle is 
different: the behavior that we pushed as part of JDK 9 was a 
generalization of the former behavior; so if you compile VarHandles with 
target 8, I don't think anything bad actually happens - if you use a JDK 
9/10/11 compiler, the compiler will type-check the polysig correctly. 
Then, in terms of code generation, nothing has changed. In other words, 
javac has no flag to enable varhandles, specifically. But it does have a 
flag to enable polysig. So we do have a problem when compiling polysig 
with no polysig target selected, but we don't have a problem when 
compiling VH with an older target selected.

Maurizio


More information about the compiler-dev mailing list