Hi Jesper, Given `f` is of SAM type, `f(params...)` is actually `f.call(params...)`, which I transform to `f.<sam-method>(params...)` eventually[1].
The reason why I do not choose `f.<sam-method>(params...)` at the beginning is that I'm not sure whether we can get enough type information of `f`, in addition, as you said, the better solution is a breaking change. It needs discussion in mailing list, which will take a long time to finish... Cheers, Daniel.Sun [1] https://github.com/apache/groovy/blob/c24c0b7e6a67dcdf277207d4261cfa6f2b55031f/src/main/java/org/codehaus/groovy/classgen/asm/InvocationWriter.java#L515 -- Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html