-
Notifications
You must be signed in to change notification settings - Fork 21
Open
scala/scala
#11205Milestone
Description
From scala/scala3#24573 (comment)
trait F1[-T, +R] {
def apply(t: T): R
}
trait SF[-T] extends F1[T, Unit] { def apply(t: T): Unit }
object T {
def f: SF[String] = (x: String) => println(x)
def main(): Unit = f("hai")
}crashes at run-time with
Exception in thread "main" java.lang.BootstrapMethodError: bootstrap method initialization exception
at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:187)
at java.base/java.lang.invoke.CallSite.makeSite(CallSite.java:310)
at java.base/java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:250)
at java.base/java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:240)
at T$.f(T.scala:8)
at T$.main(T.scala:9)
at T.main(T.scala)
Caused by: java.lang.invoke.LambdaConversionException: Type mismatch for lambda expected return: void is not convertible to class java.lang.Object
at java.base/java.lang.invoke.AbstractValidatingLambdaMetafactory.checkDescriptor(AbstractValidatingLambdaMetafactory.java:333)
at java.base/java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:312)
at java.base/java.lang.invoke.LambdaMetafactory.altMetafactory(LambdaMetafactory.java:545)
at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:143)
... 6 more
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels