You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Christopher Smith (Jira)" <ji...@apache.org> on 2023/02/13 21:20:00 UTC
[jira] [Created] (GROOVY-10933) Bootstrap Method Error on non-void lambda for Consumer
Christopher Smith created GROOVY-10933:
------------------------------------------
Summary: Bootstrap Method Error on non-void lambda for Consumer
Key: GROOVY-10933
URL: https://issues.apache.org/jira/browse/GROOVY-10933
Project: Groovy
Issue Type: Bug
Components: Static compilation
Affects Versions: 4.0.9
Reporter: Christopher Smith
When a method that returns a value is used as a {{Consumer}}, a runtime {{Error}} is produced.
{code:groovy}
class BugRepro extends Specification {
def 'repro'() {
expect:
new Demo().run()
}
}
@CompileStatic
class Demo {
List<String> strings = []
void run() {
Optional.of('hello')
.ifPresent(strings::add)
}
}
{code}
{code}
Condition failed with Exception:
new Demo().run()
| |
| java.lang.BootstrapMethodError: bootstrap method initialization exception
| at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:194)
| at java.base/java.lang.invoke.CallSite.makeSite(CallSite.java:307)
| at java.base/java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:258)
| at java.base/java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:248)
| at Demo.run(BugRepro.groovy:18)
| at BugRepro.repro(BugRepro.groovy:9)
| Caused by: java.lang.invoke.LambdaConversionException: Type mismatch for lambda expected return: boolean is not convertible to void
| at java.base/java.lang.invoke.AbstractValidatingLambdaMetafactory.checkDescriptor(AbstractValidatingLambdaMetafactory.java:317)
| at java.base/java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:294)
| at java.base/java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:328)
| at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:127)
| ... 5 more
<Demo@18e8473e strings=[]>
at BugRepro.repro(BugRepro.groovy:9)
Caused by: java.lang.BootstrapMethodError: bootstrap method initialization exception
at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:194)
at java.base/java.lang.invoke.CallSite.makeSite(CallSite.java:307)
at java.base/java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:258)
at java.base/java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:248)
at Demo.run(BugRepro.groovy:18)
... 1 more
Caused by: java.lang.invoke.LambdaConversionException: Type mismatch for lambda expected return: boolean is not convertible to void
at java.base/java.lang.invoke.AbstractValidatingLambdaMetafactory.checkDescriptor(AbstractValidatingLambdaMetafactory.java:317)
at java.base/java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:294)
at java.base/java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:328)
at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:127)
... 5 more
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)