Open neko-kai opened 5 years ago
Addendum: A by-name function is supposed to accept Function0 normally, i.e. the following works correctly:
val function0F = F.asInstanceOf[{ def f(n: Function0[Int]): Int }]
function0F.f(hi)
// hi
The problem arises only in JavaTransformingMethodMirror
Example:
Expected being able to pass a delayed value to a by-name method, but got an exception!
The error is in
scala.reflect.runtime.JavaMirrors
:Where in .apply
The argument is always assumed to be a computed value, not a delayed
Function0
, therefore it's impossible to call a method with a delayed by-nameSomething like this could fix it: