You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Paul King (JIRA)" <ji...@apache.org> on 2018/12/05 13:57:00 UTC

[jira] [Resolved] (GROOVY-8898) Annotation value cannot take inline constant from enum.

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

Paul King resolved GROOVY-8898.
-------------------------------
       Resolution: Fixed
         Assignee: Paul King
    Fix Version/s: 2.5.5
                   3.0.0-alpha-4

Annotation constants can be primitives, Strings and enum constants. We had special logic to detect the enum constants case but it meant primitive and String constants within enums were skipped over. Should be fixed in the upcoming releases.

> Annotation value cannot take inline constant from enum.
> -------------------------------------------------------
>
>                 Key: GROOVY-8898
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8898
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 2.5.4
>         Environment:  - Windows 10 
>  - IntelliJ Idea 2018
>            Reporter: Dmitrii Samotsvet
>            Assignee: Paul King
>            Priority: Major
>             Fix For: 3.0.0-alpha-4, 2.5.5
>
>
> I've had enum MyProfiles
>  
> {code:java}
> public enum MyProfiles {
>     /**some code is here
>     */
>     public final static String FIRST_PROFILE = "FIRST";
>     public final static String SECOND_PROFILE = "SECOND";
> }
> {code}
> And I've used next code in Spock test
>  
>  
> {code:java}
> @ActiveProfiles([FIRST_PROFILE ,SECOND_PROFILE ])
> {code}
>  
> So, I've got next error at compile time
> Error: Groovyc: Expected 'MyProfiles.FIRST_PROFILE' to be an inline constant of type java.lang.String not a property expression in @org.springframework.test.context.ActiveProfiles
> Error: Groovyc:Attribute 'value' should have type java.lang.String but found type java.lang.Object in @org.springframework.test.context.ActiveProfiles
>  
> But it works if I use 'class' instead of 'enum'



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)