RFR 8203488: Remove error generation from TransTypes

Jonathan Gibbons jonathan.gibbons at oracle.com
Mon May 21 22:14:42 UTC 2018



On 05/21/2018 01:17 PM, Maurizio Cimadamore wrote:
>
>
> 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.

You should not *force* --release, because that has a restricted view of 
the available API. You should at least allow people to give the full 
triple of -source/-target/-bootclasspath.

>
> 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