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