[
https://issues.apache.org/jira/browse/GROOVY-9905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Milles resolved GROOVY-9905.
---------------------------------
Fix Version/s: 4.0.0-alpha-3
Resolution: Fixed
> Groovy 3 bug: references to an outer class's parent class variable fails
> ------------------------------------------------------------------------
>
> Key: GROOVY-9905
> URL: https://issues.apache.org/jira/browse/GROOVY-9905
> Project: Groovy
> Issue Type: Bug
> Affects Versions: 3.0.7, 4.0.0-alpha-2
> Reporter: Howard
> Assignee: Eric Milles
> Priority: Major
> Fix For: 4.0.0-alpha-3
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> The follow code works on groovy 2, but not 3 (Sorry this is as simple as i
> could've made it, sometimes removing certain unused methods would cause it to
> mysteriously work
> {code}
> public interface I1 {
> }
> abstract class AC1 {
> protected final I1 styler
> AC1(I1 styler) {
> this.styler = styler
> }
> abstract void process();
> abstract AC2 newChartData();
> abstract static class AC2 {
> abstract void addPointImpl2();
> protected abstract C1.MySeries2 newSeries();
> }
> }
> class C1 extends AC1 {
> public static class MySeries2{}
>
> private class C2 extends AC1.AC2 {
> C2() {
> super()
> }
>
> @Override
> void addPointImpl2() {}
> @Override
> protected MySeries2 newSeries() { return new MySeries2(); }
> public String toBars() {
> println(styler)
> return "";
> }
> }
> C1(I1 styler) {
> super(styler)
> }
> @Override
> void process() {}
> @Override
> C2 newChartData() {
> def x = new C2();
> x.toBars();
> return x;
> }
> }
> C1 m2 = new C1(new I1() {});
> def data = m2.newChartData();
> {code}
> groovy 3 output:
> {code}
> groovy.lang.MissingPropertyException: No such property: styler for class: AC1
> at AC1$AC2.propertyMissing(ConsoleScript1)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)