[ 
https://issues.apache.org/jira/browse/GROOVY-9842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Milles updated GROOVY-9842:
--------------------------------
    Description: 
Missing inner class table entry is causing class resolution issues for older 
Eclipse IDE versions (2018-09 and earlier).

Consider the following:
{code:groovy}
class One {
  static class Two {
    static class Three {
    }
  }
}
{code}

When compiled by {{groovyc}}, the inner class table for Three is like this:
{code}
  Inner classes:
    [inner class info: #2 One$Two$Three, outer class info: #56 One$Two
     inner name: #143 Three, accessflags: 9 public static]
{code}

When compiled by {{javac}}, the inner class table for Three is like this:
{code}
  Inner classes:
    [inner class info: #12 One$Two, outer class info: #22 One
     inner name: #13 Two, accessflags: 9 public static],
    [inner class info: #2 One$Two$Three, outer class info: #12 One$Two
     inner name: #15 Three, accessflags: 9 public static]
{code}

The extra entry that refers to the direct outer class is present for Two under 
{{groovyc}}, but not for Three (the twice nested class).

  was:
Missing inner class table entry is causing class resolution issues for older 
Eclipse IDE versions (2018-09 and earlier).

Consider the following:
{code:groovy}
class One {
  static class Two {
    static class Three {
    }
  }
}
{code}

When compiled by {{groovyc}}, the inner class table for Three is like this:
{code}
  Inner classes:
    [inner class info: #2 One$Two$Three, outer class info: #56 One$Two
     inner name: #143 Three, accessflags: 9 public static]
{code}

When compiled by {{javac}}, the inner class table for Three is like this:
{code}
  Inner classes:
    [inner class info: #12 One$Two, outer class info: #22 One
     inner name: #13 Two, accessflags: 9 public static],
    [inner class info: #2 One$Two$Three, outer class info: #12 One$Two
     inner name: #15 Three, accessflags: 9 public static]
{code}

The extra entry that refers to the direct outer class is present for Two under 
{{groovyc}}, but not for Three (the twice nested class).

GROOVY-8863 is likely related.


> Static inner class of a static inner class is missing inner class table 
> attribute
> ---------------------------------------------------------------------------------
>
>                 Key: GROOVY-9842
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9842
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 2.5.13, 3.0.6
>            Reporter: Eric Milles
>            Assignee: Eric Milles
>            Priority: Major
>             Fix For: 2.5.14, 3.0.7, 4.0.0-alpha-2
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> Missing inner class table entry is causing class resolution issues for older 
> Eclipse IDE versions (2018-09 and earlier).
> Consider the following:
> {code:groovy}
> class One {
>   static class Two {
>     static class Three {
>     }
>   }
> }
> {code}
> When compiled by {{groovyc}}, the inner class table for Three is like this:
> {code}
>   Inner classes:
>     [inner class info: #2 One$Two$Three, outer class info: #56 One$Two
>      inner name: #143 Three, accessflags: 9 public static]
> {code}
> When compiled by {{javac}}, the inner class table for Three is like this:
> {code}
>   Inner classes:
>     [inner class info: #12 One$Two, outer class info: #22 One
>      inner name: #13 Two, accessflags: 9 public static],
>     [inner class info: #2 One$Two$Three, outer class info: #12 One$Two
>      inner name: #15 Three, accessflags: 9 public static]
> {code}
> The extra entry that refers to the direct outer class is present for Two 
> under {{groovyc}}, but not for Three (the twice nested class).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to