[
https://issues.apache.org/jira/browse/GROOVY-7762?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pascal Schumacher updated GROOVY-7762:
--------------------------------------
Description:
If both the parent class and the child are in the same file or project (i.e.
they are being compiled together), this works; however, if the parent is
compiled into a separate JAR, the child class is unable to see the parents
inner classes.
Example:
{code}class X {
static class Y {}
}{code}
Compile X into a separate JAR.
{code}class Z extends X {
Z() {
Y y = new Y();
}
}{code}
Compiling Z will cause an error.
was:
Classes that extend another class with static inner classes are unable to see
the inner classes without including the parent class name as part of the class
reference.
Example:
{code}
class X {
static class Y {}
}
class Z extends X {
Z() {
Y y = new Y();
}
}
{code}
The compiler fails to compile "Z" saying it cannot resolve class "Y"; however,
it will accept "X.Y y = new X.Y()".
The child class should not have to reference the parent class directly to get
to its inner classes, should it?
> Static inner classes not visible to child classes
> -------------------------------------------------
>
> Key: GROOVY-7762
> URL: https://issues.apache.org/jira/browse/GROOVY-7762
> Project: Groovy
> Issue Type: Sub-task
> Components: class generator
> Affects Versions: 2.1.6, 2.2.0-beta-1, 2.1.7, 2.2.0, 2.4.0-beta-3
> Reporter: Kenneth Gendron
>
> If both the parent class and the child are in the same file or project (i.e.
> they are being compiled together), this works; however, if the parent is
> compiled into a separate JAR, the child class is unable to see the parents
> inner classes.
> Example:
> {code}class X {
> static class Y {}
> }{code}
> Compile X into a separate JAR.
> {code}class Z extends X {
> Z() {
> Y y = new Y();
> }
> }{code}
> Compiling Z will cause an error.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)