groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jordan Martinez (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (GROOVY-7868) Calling super constructor with in-line casted Closure param does not compile: unexpected "constructor call must be first statement" error
Date Sun, 19 Jun 2016 00:09:05 GMT

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

Jordan Martinez updated GROOVY-7868:
------------------------------------
    Affects Version/s: 2.4.6

> Calling super constructor with in-line casted Closure param does not compile: unexpected
"constructor call must be first statement" error
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-7868
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7868
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 2.4.6
>         Environment: Linux Mint 17.3
>            Reporter: Jordan Martinez
>            Priority: Minor
>
> Running the following code in Groovy Console should result "succesfully" with "Could
not find matching constructor for 'SomeObject'"
> Instead, code fails with issue "Constructor call must be the first statement in a constructor,"
which is weird because it is...
> Code only runs correctly (e.g. fails in the expected way) in 5 cases:
>  - "{} as BiConsumer" line in the super constructor is commented out
>  - all arguments past Closure-cast line must be commented out 
>  - Closure is cast to a different object (say String)
>  - the second "Collections.emptyList()" is changed to a different type (say String) but
the third remains the same
>  - The BiConsumer's second generic type (Collection<String>) is changed to a different
type (say String)
> --- Code Start ---
> import java.util.function.BiConsumer
> public class ProblematicObject extends SomeObject {
>     public ProblematicObject() {
>         super(
>             { } as BiConsumer<String, Collection<String>>, 
>             
>             Collections.emptyList(),
>             Collections.emptyList()
>         )
>     }
>     
> }
> new ProblematicObject()
> --- Code End ---



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message