JDK 12 RFR of JDK-802856: Remove javac support for 6/1.6 source and target values
joe darcy
joe.darcy at oracle.com
Sun Jul 8 17:01:22 UTC 2018
Hello,
Please review the initial implementation of
JDK-802856: Remove javac support for 6/1.6 source and target values
http://cr.openjdk.java.net/~darcy/8028563.4/
and the accompanying CSR:
https://bugs.openjdk.java.net/browse/JDK-8206877
I suspect at least one adjustment of the changeset will be needed, as
discussed below.
All the langtools tests pass with these changes.
A few comments about the current state of the patch:
Updating the various components of the compiler was in part revisiting
and then retiring some of the detailed engineering done for Project
Coin, such as giving distinct error messages about a try statement
lacking other pieces dependent on whether or not try-with-resources is
supported under the source version in effect.
The refactoring in Source.java to use the Feature enum was easy to work
with. Excising the now conceptually dead code and checks was
straightforward. The enum constant for DIAMOND was *not* removed,
although it is also semantically unconditionally true now just like the
other introduced-in-7 features, because messages about diamond from
checkSourceLevel called in the parser are used in the testing of
diagnostics generated for the preview feature functionality. I didn't
dig down to try to determine the full set of interactions here. There is
also support for the diamond finder elsewhere in the compiler. I think
it would be acceptable to leave DIAMOND available as a enum constant if
there are other uses for it.
While an earlier changeset cleared out uses of -source 6 and -target 6
(JDK-8206439), various other tests needed updating since -source 7 is
now obsolete. This was often handled by adding "-lint:-options" to the
compile invocation. I'll file a follow-up issue to add "-lint:-options"
to a handful of uses of -source 8 to avoid similar edits being needed in
the future.
For expediency, I ignored the warning in make/data/symbols/symbols that
"THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT." and edited the file
to remove support for --release 6. This aspect of the change should be
redone properly, but I thought it would be quicker to ask about this
point during the code review than investigate how this aspect of the
build works. Once the proper way is determined, I'll send a note to
build-dev for a review of that aspect of the change.
Thanks,
-Joe
More information about the compiler-dev
mailing list