You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "César Izurieta (JIRA)" <ji...@apache.org> on 2015/07/20 16:31:04 UTC
[jira] [Created] (GROOVY-7512) Cannot call Trait method from
Closure when using static compilation
César Izurieta created GROOVY-7512:
--------------------------------------
Summary: 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: Cédric Champeau
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(Test2.groovy:14)
at T$Trait$Helper$_getX_closure1.doCall(Test2.groovy)
at Test2.run(Test2.groovy:23)
{code}
The commit that is causing this seems to be: 1bbed25aa3a08bc0cb7e14e49a1e7c2b82f21a26
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)