On 11/14/2022 10:56 AM, Alex Buckley wrote:
(I think JLS 11.1.2 "The Causes of Exceptions" ought to mention an `assert` statement -- filed https://bugs.openjdk.org/browse/JDK-8296951)

In the spirit of fixing omissions, a list member told me that JLS 15.27.4 omits to mention that a LambdaConversionException can occur. This exception arises from the operation of LambdaMetaFactory, which is a mechanism provided by the Java Platform for implementing 15.27.4 (see the javadoc of j.l.i.LambdaMetafactory::metafactory).

However, per https://bugs.openjdk.org/browse/JDK-8059640, any LambdaConversionException will surface as a LinkageError, and the precise timing of a LinkageError is specified as unspecified by JLS 15.6: "Various linkage and virtual machine errors may also occur during the evaluation of an expression. By their nature, such errors are difficult to predict and difficult to handle."

Given that use of LambdaMetaFactory is optional (note "a mechanism", not "the mechanism"), and given that LambdaConversionException is not visible even when it is used, I don't see any need to change 15.27.4.

Alex

Reply via email to