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

Paul King closed GROOVY-6174.
-----------------------------

> Groovy support of class inner enums is strange
> ----------------------------------------------
>
>                 Key: GROOVY-6174
>                 URL: https://issues.apache.org/jira/browse/GROOVY-6174
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 2.1.3
>            Reporter: Pavel
>            Assignee: Paul King
>            Priority: Critical
>
> pack.MyClassWithEnumPack.groovy:
> {code}
> package pack
> class MyClassWithEnumPack {
>       public static enum MyEnum{ ONE, TWO, THREE }
>       def static howdy() {
>               println 'Howdy'
>       }
> }
> {code}
> enum-test.groovy:
> {code}
> import pack.MyClassWithEnumPack
> // 
> http://testinfected.blogspot.ru/2008/01/dry-groovy-how-to-get-groovy-to-import.html
> new MyClassWithEnumPack().howdy()
> MyClassWithEnumPack.MyEnum t;
> println t;
> {code}
> Fails to run:
> {code}
> [pasha@hubbitus testpackage]$ groovy ./enum-test.groovy
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup 
> failed:
> /home/pasha/imus/imus-tools.GIT/testpackage/enum-test.groovy: 8: unable to 
> resolve class MyClassWithEnumPack.MyEnum 
>  @ line 8, column 28.
>    MyClassWithEnumPack.MyEnum t;
>                               ^
> 1 error
> {code}
> What very interesting, groovy really known about that enum, because code:
> {code}
> import pack.MyClassWithEnumPack
> println MyClassWithEnumPack.MyEnum.ONE;
> {code}
> Works!
> What even more interesting, it is compile time issue. If I comment out using 
> of inner enum:
> {code}
> import pack.MyClassWithEnumPack
> //MyClassWithEnumPack.MyEnum t;
> //println t;
> {code}
> Then run compile:
> {code}
> $ groovyc ./enum-test.groovy
> {code}
> And then run initial variant:
> {code}
> $ groovy ./enum-test.groovy
> {code}
> it then works as expected and because there file 
> pack/MyClassWithEnumPack$MyEnum.class present.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to