You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Daniel Sun (Jira)" <ji...@apache.org> on 2019/08/31 18:07:00 UTC

[jira] [Assigned] (GROOVY-9243) Fail to resolve nested type defined in base type written in Groovy

     [ https://issues.apache.org/jira/browse/GROOVY-9243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Sun reassigned GROOVY-9243:
----------------------------------

       Assignee:     (was: Daniel Sun)
    Description: 
*file Base.groovy:*
{code:java}
package groovy.bugs.groovy9243

class Base {
    static class X {}
}
{code}

*file Main.groovy:*
{code:java}
package groovy.bugs.groovy9243

class Groovy9243 extends Base {
    def accessX() {
        assert new X()
    }
}

new Groovy9243().accessX()
{code}

compile Main.groovy with groovyc: {{unable to resolve class X }}


Here is a workaround:
*file Main.groovy:*
{code:java}
package groovy.bugs.groovy9243

class Groovy9243 extends Base {
    def accessX() {
        assert new Base.X()  // qualify the type name
    }
}

new Groovy9243().accessX()
{code}

       Priority: Minor  (was: Major)
        Summary: Fail to resolve nested type defined in base type written in Groovy  (was: Favor type in the same package over nested type with same name in its base type)

> Fail to resolve nested type defined in base type written in Groovy
> ------------------------------------------------------------------
>
>                 Key: GROOVY-9243
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9243
>             Project: Groovy
>          Issue Type: Bug
>            Reporter: Daniel Sun
>            Priority: Minor
>
> *file Base.groovy:*
> {code:java}
> package groovy.bugs.groovy9243
> class Base {
>     static class X {}
> }
> {code}
> *file Main.groovy:*
> {code:java}
> package groovy.bugs.groovy9243
> class Groovy9243 extends Base {
>     def accessX() {
>         assert new X()
>     }
> }
> new Groovy9243().accessX()
> {code}
> compile Main.groovy with groovyc: {{unable to resolve class X }}
> Here is a workaround:
> *file Main.groovy:*
> {code:java}
> package groovy.bugs.groovy9243
> class Groovy9243 extends Base {
>     def accessX() {
>         assert new Base.X()  // qualify the type name
>     }
> }
> new Groovy9243().accessX()
> {code}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)