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