RFR: JDK-8315458 Implement JEP 463: Implicitly Declared Classes and Instance Main Method (Second Preview) [v19]
Pavel Rappo
prappo at openjdk.org
Tue Nov 21 18:44:23 UTC 2023
On Tue, 21 Nov 2023 12:58:42 GMT, Jim Laskey <jlaskey at openjdk.org> wrote:
>> @JimLaskey, in my experiments for JDK-8308715 (Create a mechanism for Implicitly Declared Class javadoc), I found that `javax.lang.model.util.Elements.getOrigin` reports `Origin.EXPLICIT` for the implicitly declared class and `Origin.MANDATED` for that class' constructor. Shouldn't they both be `Origin.MANDATED` because the elements are created from source, not class files, which have some limitations on `ACC_MANDATED`?
>
> @pavelrappo Classes can’t be MANDATED. Looking at the code I see that EXPLICIT is the default return value when no other conditions apply.
@JimLaskey, I note that something weird is happening in relation to comments on method declarations. Comments on field declarations might be affected too, but I haven't checked.
Comments on method declarations are correctly captured only if those declarations are minimal. That is, if they consist of a result, name, and parameters. Whenever modifiers like public, protected, private, static, or final appear, the comments disappear.
Briefly looking at `com.sun.tools.javac.parser.JavacParser` code (which I have no clue what is doing), I assume the comments are getting misattributed to some other tokens.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16461#issuecomment-1821458574
More information about the compiler-dev
mailing list