James Kleeh created GROOVY-7994:
-----------------------------------
Summary: Anonymous inner class believes protected method in
parent's superclass returns Object
Key: GROOVY-7994
URL: https://issues.apache.org/jira/browse/GROOVY-7994
Project: Groovy
Issue Type: Bug
Components: groovy-runtime
Affects Versions: 2.4.7
Reporter: James Kleeh
The below will execute the constructor on `Other` that takes an `Object`, even
though `getName()` returns a `String`.
```
import groovy.transform.CompileStatic
@CompileStatic
class Parent {
protected String getName() {
"sally"
}
}
@CompileStatic
class Child extends Parent {
Inner doSomething() {
return new Inner() {
void go() {
new Other(name)
}
}
}
}
@CompileStatic
class Other {
Other(Object object) {
println "called with other"
}
Other(String string) {
println "called with string"
}
}
@CompileStatic
abstract class Inner {
abstract void go()
}
Inner inner = new Child().doSomething()
inner.go()
```
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)