JEL 477 Issue

Olexandr Rotan rotanolexandr842 at gmail.com
Tue Aug 13 14:56:44 UTC 2024


>
>  (I believe this report is specifically about sub-optimal error recovery
> and reporting for implicitly declared classes.)


Oh yeah, I ran through the original message too quickly to see there
actually was an error. Sorry for confusion. maybe that in fact was some
jtreg bug (or mine bug :) )


On Tue, Aug 13, 2024 at 2:56 PM Jan Lahoda <jan.lahoda at oracle.com> wrote:

> On 13. 08. 24 13:22, Olexandr Rotan wrote:
>
> I actually had a similar issue quite a while ago, when I wrote tests for
> https://bugs.openjdk.org/browse/JDK-8332497. but thought it was an issue
> with jtreg. If you go to related PR, you could see long rants about test
> failing with similar error. Not sure if it would be helpful, but whoever
> will take on this issue could also look into this PR for extra test case
> and anything else one might find useful.
>
>
> Could you please be more specific about the relevant parts in the PR? I
> went through it twice, but sadly don't see much that would be relevant. (I
> believe this report is specifically about sub-optimal error recovery and
> reporting for implicitly declared classes.)
>
>
> Thanks,
>
>     Jan
>
>
>
> On Tue, Aug 13, 2024 at 2:06 PM Magnus Ihse Bursie <
> magnus.ihse.bursie at oracle.com> wrote:
>
>> If this is something that should be fixed, do we have a JBS issue
>> tracking it?
>>
>> /Magnus
>> On 2024-07-30 19:43, Jonathan Gibbons wrote:
>>
>> Even without special-casing `main`, the error message is misleading
>> because it says `class, interface, enum, or record expected` and does not
>> admit the possibility of `void` in this particular circumstance.
>>
>> -- Jon
>>
>>
>> On 7/30/24 9:57 AM, Remi Forax wrote:
>>
>>
>>
>> ------------------------------
>>
>> *From: *"Jaikiran Pai" <jai.forums2013 at gmail.com>
>> <jai.forums2013 at gmail.com>
>> *To: *"jdk-dev" <jdk-dev at openjdk.org> <jdk-dev at openjdk.org>
>> *Sent: *Tuesday, July 30, 2024 5:43:34 PM
>> *Subject: *Re: JEL 477 Issue
>>
>> > import module java.base;
>> >
>> > main() {
>> >
>> >    println("Moose");
>> >
>> >}
>>
>> It appears that you are missing a "void" return type before the main()
>> method name. As noted in the JEP-477, it should be:
>>
>> import module java.base;
>> void main() {
>>     println("Moose");
>> }
>>
>>
>> that said, if we want beginners to be able to use that syntax, the error
>> message should be changed because the current message is misleading and not
>> very helpfull (javac should recognize "main" and have a tailored error
>> message).
>>
>> @Ken, you do not need to import module java.base, it's done by default
>> and --source 23 is not needed anymore since 23.
>>
>>
>> -Jaikiran
>>
>>
>> regards,
>> Rémi
>>
>>
>> On 30/07/24 9:05 pm, omniprof at gmail.com wrote:
>>
>> I apologize for posting what is likely a trivial question that may be
>> inappropriate for this list but I cannot find anywhere in my searches to
>> explain what is going wrong. Simply put JEP 477 does not work in the
>> pre-release version of Java 23 on a Windows 11 PC. There is a lot written
>> that all show a similar example.
>>
>> *>> Here is the program*
>>
>> import module java.base;
>>
>>
>>
>> main() {
>>
>>     println("Moose");
>>
>> }
>>
>>
>>
>> *>> Here is the version of Java I am running*
>>
>> C:\dev\Onramptesting\OnRamptest\src>java --version
>>
>>
>>
>> openjdk 23-ea 2024-09-17
>>
>> OpenJDK Runtime Environment (build 23-ea+34-2361)
>>
>> OpenJDK 64-Bit Server VM (build 23-ea+34-2361, mixed mode, sharing)
>>
>>
>>
>> *>> Here I run the code with all the required switches. The errors are
>> the same with or without Xlint*
>>
>> C:\dev\Onramptesting\OnRamptest\src>javac --enable-preview --source 23
>> -Xlint:preview Main.java
>>
>>
>>
>> Main.java:1: warning: [preview] module imports are a preview feature and
>> may be removed in a future release.
>>
>> import module java.base;
>>
>>        ^
>>
>> Main.java:3: error: class, interface, enum, or record expected
>>
>> main() {
>>
>> ^
>>
>> Main.java:5: error: class, interface, enum, or record expected
>>
>> }
>>
>> ^
>>
>> 2 errors
>>
>> 1 warning
>>
>>
>>
>> Note that I get the same results for –source 23 and –release 23
>>
>>
>>
>> Trying single file:
>>
>> java –enable-preview Main.java
>>
>> does not work as well.
>>
>>
>>
>> Same result using Console or PowerShell in Windows.
>>
>>
>>
>> What am I doing wrong?
>>
>>
>>
>> Ken Fogel
>>
>> omniprof at gmail.com
>>
>>
>>
>>
>>
>>
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/jdk-dev/attachments/20240813/d167a299/attachment-0001.htm>


More information about the jdk-dev mailing list