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 2016/03/04 05:35:40 UTC

[jira] [Commented] (GROOVY-7778) CLONE - Enum constructor with value throws "unexpected token" error

    [ https://issues.apache.org/jira/browse/GROOVY-7778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15179302#comment-15179302 ] 

Paul King commented on GROOVY-7778:
-----------------------------------

This is cloned from the original. This issue is to address whether we can tweak/finesse the grammar to remove the need for a semi-colon for the case of a dangling comma.

> CLONE - Enum constructor with value throws "unexpected token" error
> -------------------------------------------------------------------
>
>                 Key: GROOVY-7778
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7778
>             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)