Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-9842

Static inner class of a static inner class is missing inner class table attribute

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.5.13, 3.0.6
    • 2.5.14, 3.0.7, 4.0.0-alpha-2
    • None
    • None

    Description

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

      Consider the following:

      class One {
        static class Two {
          static class Three {
          }
        }
      }
      

      When compiled by groovyc, the inner class table for Three is like this:

        Inner classes:
          [inner class info: #2 One$Two$Three, outer class info: #56 One$Two
           inner name: #143 Three, accessflags: 9 public static]
      

      When compiled by javac, the inner class table for Three is like this:

        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]
      

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

      Attachments

        Issue Links

          Activity

            People

              emilles Eric Milles
              emilles Eric Milles
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 40m
                  40m