You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2020/11/28 19:17:00 UTC

[jira] [Updated] (GROOVY-9842) Static inner class of a static inner class is missing inner class table attribute

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

GROOVY-8863 is likely related.

  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 Inner, 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
>            Reporter: Eric Milles
>            Priority: Major
>
> 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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)