[ https://issues.apache.org/jira/browse/GROOVY-11265?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17803266#comment-17803266 ]
Christopher Smith commented on GROOVY-11265: -------------------------------------------- Query: Is the closure generated by {{javaUtilMap.forEach { k, v -> /* code*/ }}} supposed to actually {{implements BiConsumer}}, or is this wrapped by the {{cast}} call? > Runtime rehydrate error for closure in interface default method > --------------------------------------------------------------- > > Key: GROOVY-11265 > URL: https://issues.apache.org/jira/browse/GROOVY-11265 > Project: Groovy > Issue Type: Bug > Components: Compiler, Static compilation > Affects Versions: 4.0.13, 4.0.17 > Reporter: Christopher Smith > Priority: Critical > > When using an interface default method (implemented in Groovy 4 as a trait) > that returns an instance of a functional interface defined by a lambda, > compilation succeeds but runtime invocation produces > {code} > groovy.lang.MissingMethodException: No signature of method: > com.example.MyInterface$Trait$Helper$$Lambda$2132/0x0000000800e24c40.rehydrate() > is applicable for argument types: (com.example.MyImplementation...) values: > [com.example.MyImplementation@2a7087a8, ...] > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:72) > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:184) > at com.example.MyInterface$Trait$Helper.curry(MyInterface.groovy:19) > at com.example.MyImplementation.curry(MyImplementation.groovy) > {code} > Update: This appears to be a problem introduced between 4.0.12 and 4.0.13 and > shows up only when _the interface_ is defined as {{@CompileStatic}}. While I > understand that the party line is that traits and ASTTs aren't guaranteed to > be compatible, (1) this was working perfectly previously and (2) the > compiler's implementation of interface default methods as traits is an > implementation detail and should have as limited a blast radius as practical. -- This message was sent by Atlassian Jira (v8.20.10#820010)