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)