Compile via: groovyc Example.groovy.
The line thing.call in Child.doSomething() calls getThing(), but then ends up referring to the returned value according to the private field's type from Parent (ThingImpl) instead of the actual returned type (Thing). The private field from Parent (or its type) should not be visible to Child at all.
This is causing now problems for Gradle plugins compiled against Grade 4.9 or before trying to run on Gradle 4.9, because we've made a change to an internal type (`ProjectInternal`) that ended up being referred to via this bug in compiled and released code. See https://github.com/gradle/gradle/issues/6027