[ 
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)

Reply via email to