Compiler error message not clear for Valhalla EA 2

Remi Forax forax at univ-mlv.fr
Wed Oct 29 08:30:22 UTC 2025


This is an interesting case because i'm not sure the compiler should emit an error here. 

Currently the error occurs because as you said the call to super() is added after the call to throw. 

But throwing an exception in a constructor of an identity class is valid, and i do not see a reason why this behavior should not be the same in the case of a value class. 

regards, 
Rémi 

> From: "David Alayachew" <davidalayachew at gmail.com>
> To: "valhalla-dev" <valhalla-dev at openjdk.org>
> Sent: Wednesday, October 29, 2025 5:30:23 AM
> Subject: Re: Compiler error message not clear for Valhalla EA 2

> The compiler error message goes away if I put a super(); as the first statement
> in the constructor. But still, that error message could be clearer.

> From: "David Alayachew" <davidalayachew at gmail.com>
> To: "valhalla-dev" <valhalla-dev at openjdk.org>
> Sent: Wednesday, October 29, 2025 5:27:55 AM
> Subject: Compiler error message not clear for Valhalla EA 2

> Hello [ mailto:valhalla-dev at openjdk.org | @valhalla-dev ] ,

> While testing out the new Valhalla EA that came out a few days ago, I ran into
> the following compiler error.

> Here is a minified example.

> public value class abc
> {

> public abc()
> {
> throw new UnsupportedOperationException();
> }

> public static void someHelperMethod()
> {}

> }

> And here is the compiler error message.

> $ java --enable-preview abc.java
> abc.java:5: error: unreachable statement
> {
> ^
> 1 error
> error: compilation failed

> That location is the opening curly brace of the constructor.

> Can we have a more clear error message?

> Thank you for your time and consideration.
> David Alayachew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/valhalla-dev/attachments/20251029/bb37c7d5/attachment.htm>


More information about the valhalla-dev mailing list