RFR: 8268869: java in source-file mode suggests javac-only Xlint flags

Guoxiong Li gli at openjdk.java.net
Mon Jun 28 13:59:09 UTC 2021


On Mon, 28 Jun 2021 13:33:04 GMT, Adam Sotona <asotona 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 604:

> 602:     public void testNoRecompileWithSuggestions(Path base) throws IOException {
> 603:         tb.writeJavaFiles(base,
> 604:             "class NoRecompile {\n" +

It is better to use text block `"""` to improve the readability.

-------------

PR: https://git.openjdk.java.net/jdk/pull/4613


More information about the compiler-dev mailing list