[ https://issues.apache.org/jira/browse/GROOVY-8358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniil Ovchinnikov updated GROOVY-8358: --------------------------------------- Description: {code} package bugs class Outer implements OuterI { static class Current extends CurrentParent { static usage() { new Target() } } } class CurrentParent implements CurrentParentI {} interface CurrentParentI { static class Target {} } interface OuterI { static class Target {} } println Outer.Current.usage() // bugs.OuterI$Target@3eb7fc54 {code} If {{CurrentParent}} definition is moved before {{Outer}}, then {{new Target}} will be resolved to {{bugs.CurrentParentI$Target}}: {code} package bugs class CurrentParent implements CurrentParentI {} class Outer implements OuterI { class Current extends CurrentParent { static usage() { new Target() } } } interface CurrentParentI { static class Target {} } interface OuterI { static class Target {} } println Outer.Current.usage() // bugs.CurrentParentI$Target@3eb7fc54 {code} Moving classes must not affect results of compilation. was: {code} package bugs class Outer implements OuterI { class Current extends CurrentParent { static usage() { new Target() } } } class CurrentParent implements CurrentParentI {} interface CurrentParentI { static class Target {} } interface OuterI { static class Target {} } println Outer.Current.usage() // bugs.OuterI$Target@3eb7fc54 {code} If {{CurrentParent}} definition is moved before {{Outer}}, then {{new Target}} will be resolved to {{bugs.CurrentParentI$Target}}: {code} package bugs class CurrentParent implements CurrentParentI {} class Outer implements OuterI { class Current extends CurrentParent { static usage() { new Target() } } } interface CurrentParentI { static class Target {} } interface OuterI { static class Target {} } println Outer.Current.usage() // bugs.CurrentParentI$Target@3eb7fc54 {code} Moving classes must not affect results of compilation. > Inner class resolution fails > ---------------------------- > > Key: GROOVY-8358 > URL: https://issues.apache.org/jira/browse/GROOVY-8358 > Project: Groovy > Issue Type: Bug > Reporter: Daniil Ovchinnikov > Priority: Critical > > {code} > package bugs > class Outer implements OuterI { > static class Current extends CurrentParent { > static usage() { > new Target() > } > } > } > class CurrentParent implements CurrentParentI {} > interface CurrentParentI { > static class Target {} > } > interface OuterI { > static class Target {} > } > println Outer.Current.usage() // bugs.OuterI$Target@3eb7fc54 > {code} > If {{CurrentParent}} definition is moved before {{Outer}}, then {{new > Target}} will be resolved to {{bugs.CurrentParentI$Target}}: > {code} > package bugs > class CurrentParent implements CurrentParentI {} > class Outer implements OuterI { > class Current extends CurrentParent { > static usage() { > new Target() > } > } > } > interface CurrentParentI { > static class Target {} > } > interface OuterI { > static class Target {} > } > println Outer.Current.usage() // bugs.CurrentParentI$Target@3eb7fc54 > {code} > Moving classes must not affect results of compilation. -- This message was sent by Atlassian JIRA (v6.4.14#64029)