[ https://issues.apache.org/jira/browse/GROOVY-7773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15176771#comment-15176771 ]
Paul King commented on GROOVY-7773: ----------------------------------- We did do a slight tweak to the grammar for enums (851fd58). Perhaps it is related to that. If you remove the last comma (i.e. after IN) then your example works. So, I think the priority is fine at least until we look into it more and decide which variations we want to support. Java would require a semicolon after such a dangling comma but we don't support that either. I suspect though that this edge case wasn't noted as a breaking change, I'll mark it as such once I confirm. > Enum constructor with value throws "unexpected token" error > ----------------------------------------------------------- > > Key: GROOVY-7773 > URL: https://issues.apache.org/jira/browse/GROOVY-7773 > Project: Groovy > Issue Type: Bug > Components: Compiler > Affects Versions: 2.4.6 > Environment: Windows 7 Professional > JDK 1.8.0_45 > Reporter: Brian Ray > Priority: Minor > > First time submitter to this JIRA so let me know if I've specified anything > incorrectly. I just upgraded from 2.4.4 to 2.4.6 and now declaring an enum > constructor accepting a value as follows: > {code:title=UsStates.groovy} > enum UsState { > > ID('Idaho'), > IL('Illinois'), > IN('Indiana'), > > UsState( String value ) { this.value = value } > private final String value > > String toString() { return value } > } > println UsState.ID //Idaho > {code} > throws the following compile error: > {code} > org.codehaus.groovy.control.MultipleCompilationErrorsException: startup > failed: > C:\svn_qa\jenkins_trunk\scripts\UsStates.groovy: 7: unexpected token: this @ > line 7, column 29. > UsState( String value ) { this.value = value } > ^ > 1 error > {code} > No such error occurred in 2.4.4, nor does it happen in 2.4.5. Here are a few > contrasting things that do seem to work in 2.4.6: > {code:title=UsStatesBoring.groovy} > enum UsState { > > ID, > IL, > IN, > } > println UsState.ID //ID > {code} > {code:title=UsStatesNoEnum.groovy} > class UsState { > > UsState( String value ) { this.value = value } > private final String value > > String toString() { return value } > } > final idaho = new UsState('Idaho') > println idaho //Idaho > {code} > Though this seems higher priority than Minor, I can work around it by simply > downgrading to 2.4.5. I wish there was a Medium priority. -- This message was sent by Atlassian JIRA (v6.3.4#6332)