RFR: JDK-8306112 Implementation of JEP 445: Flexible Main Methods and Anonymous Main Classes (Preview) [v3]
Jim Laskey
jlaskey at openjdk.org
Fri Apr 28 14:50:52 UTC 2023
On Fri, 28 Apr 2023 13:13:57 GMT, Jan Lahoda <jlahoda at openjdk.org> wrote:
>> Jim Laskey has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 14 commits:
>>
>> - Merge branch 'master' into 8306112
>> - PreviewFeatures.isEnabled()
>> - Clean up isPreview
>> - Missing exception
>> - Corrections
>> - Update VM.java
>> - Clean up testing
>> - Update TestJavacTaskScanner.java
>> - Merge branch 'master' into 8306112
>> - Clean up
>> - ... and 4 more: https://git.openjdk.org/jdk/compare/96cdf93b...53a5321d
>
> src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java line 627:
>
>> 625: }
>> 626:
>> 627: public boolean isAnonymousMainClass() {
>
> This method seems a bit confusing to me. I believe the fields and methods will be stripped from `defs` if/when the wrapping class is created, which will mean this method will start to return `false`, no? It overall does not seem like a generally useful predicate.
>
> (If I understand this correctly, if we created the wrapping class in parser neither of these two methods would be needed.)
Inlining
> src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java line 640:
>
>> 638: // Find anonymous main class.
>> 639: for (JCTree def : defs) {
>> 640: if (def.hasTag(CLASSDEF)) {
>
> Nit, in cases like this, we lately tend to write `def instanceof JCClassDecl cls`, although we understand this way to check the AST is only safe inside javac.
Changing
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13689#discussion_r1180491264
PR Review Comment: https://git.openjdk.org/jdk/pull/13689#discussion_r1180491108
More information about the core-libs-dev
mailing list