RFR: 8268869: java in source-file mode suggests javac-only Xlint flags
Adam Sotona
asotona at openjdk.java.net
Thu Aug 5 09:02:30 UTC 2021
On Mon, 2 Aug 2021 15:33:41 GMT, Jonathan Gibbons <jjg at openjdk.org> wrote:
>> java in source-file mode (see JEP 330) displays compiler notes suggesting recompile with -Xlint:deprecation and -Xlint:unchecked. According JEP 330 these advanced javac optionns are not allowed. The goal with JEP 330 was to support developers that are at the early stages of learning Java, so options such as -Xlint are out of their scope.
>>
>> This patch prevents displaying "Note: Recompile with -Xlint:deprecation for details." and "Note: Recompile with -Xlint:unchecked for details." by implicitly enabling -Xlint:deprecation and -Xlint:unchecked in com.sun.tool.javac.launcher.Main for all invocations.
>>
>> Beside avoiding prohibited javac option suggestion notes this patch has positive effect of more verbose compilation diagnostic. Higher diagnostic verbosity is appreciated by users learning Java on single-source programs in java source-file mode.
>>
>> Similar case with -Xdiags:verbose was reported in JDK-8248843 and resolved in commit openjdk/jdk/31d0f0d8after review openjdk/jdk/4094
>>
>> The patch also provides new test "testNoRecompileWithSuggestions" detecting unwanted recompilation suggestions in java in source-file mode execution. The test cover also case from JDK-8248843 with -Xdiags:verbose
>
> test/langtools/tools/javac/launcher/SourceLauncherTest.java line 624:
>
>> 622: " if (o instanceof String s) {\n" +
>> 623: " System.out.println(s);\n" +
>> 624: " }\n" +
>
> Is there a reason you're not using a text block here?
Using text block will prevent potential "clean" backports of this issue. However if you think this patch won't be subject of backport, I can turn it into text block.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4613
More information about the compiler-dev
mailing list