[ https://issues.apache.org/jira/browse/GROOVY-7512?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles updated GROOVY-7512: -------------------------------- Labels: traits (was: ) > Cannot call Trait method from Closure when using static compilation > ------------------------------------------------------------------- > > Key: GROOVY-7512 > URL: https://issues.apache.org/jira/browse/GROOVY-7512 > Project: Groovy > Issue Type: Bug > Components: Compiler, Static compilation, Static Type Checker > Affects Versions: 2.4.4 > Reporter: César Izurieta > Assignee: Eric Milles > Priority: Major > Labels: traits > Fix For: 4.0.0-alpha-1, 3.0.5, 2.5.16 > > Time Spent: 0.5h > Remaining Estimate: 0h > > When running: > {code:title=test.groovy|borderStyle=solid} > class X { > Closure action = {} > } > trait T { > void say(String text) { > println text > } > @groovy.transform.CompileStatic > X getX() { > new X(action: { > say "Hello!" > }) > } > } > class A implements T { > } > new A().x.action() > {code} > The following exception is thrown: > {code} > Caught: java.lang.ClassCastException: java.lang.Class cannot be cast to T > java.lang.ClassCastException: java.lang.Class cannot be cast to T > at T$Trait$Helper$_getX_closure1.doCall(test.groovy:14) > at T$Trait$Helper$_getX_closure1.doCall(test.groovy) > at test.run(test.groovy:23) > {code} > This is only happening on groovy 2.4.4. Removing the static compilation > annotation or reverting to groovy version 2.4.3 makes the code work. > The commit that is causing this problem seems to be: > 1bbed25aa3a08bc0cb7e14e49a1e7c2b82f21a26 -- This message was sent by Atlassian Jira (v8.20.10#820010)