groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shil Sinha (JIRA)" <>
Subject [jira] [Updated] (GROOVY-8360) Enums that are nested classes do not have the static modifier set
Date Sat, 04 Nov 2017 17:29:00 GMT


Shil Sinha updated GROOVY-8360:
    Fix Version/s: 2.5.0-beta-3

> Enums that are nested classes do not have the static modifier set
> -----------------------------------------------------------------
>                 Key: GROOVY-8360
>                 URL:
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 3.x, 2.6.0-alpha-1, 2.4.12, 2.5.0-beta-2
>            Reporter: Shil Sinha
>            Assignee: Shil Sinha
>            Priority: Major
>             Fix For: 2.5.0-beta-3
> In java, enums that are nested classes have the static modifier set i.e. if Bar is an
enum defined within a class Foo, {{assert Modifier.isStatic(Foo.Bar.modifiers)}} passes. The
assertion does not hold if Foo and Bar are defined in groovy:
> {code}
> class Foo {
>     enum Bar {
>         X
>     }
> }
> assert java.lang.reflect.Modifier.isStatic(Foo.Bar.modifiers)
> {code}
> This can be problematic in cases like, where the type
of a mapped field cannot be a non-static inner class. Of course that library could also be
more enum-aware when validating mapped fields, but that's a separate issue. 
> A simple workaround for this issue is to explicitly declare the enum as static, so it's
not critical that a patch for this be in 2.4.X if it's considered a breaking change (though
no tests fail with the change.)

This message was sent by Atlassian JIRA

View raw message