groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GROOVY-7912) MissingPropertyException when referencing a static import in a closure's optional parameters
Date Thu, 25 Aug 2016 22:26:20 GMT

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

ASF GitHub Bot commented on GROOVY-7912:
----------------------------------------

Github user asfgit closed the pull request at:

    https://github.com/apache/groovy/pull/392


> MissingPropertyException when referencing a static import in a closure's optional parameters
> --------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-7912
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7912
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 2.4.7
>            Reporter: M. Justin
>            Priority: Minor
>
> A MissingPropertyException is thrown when calling a closure which references a statically
imported field in the value of an optional parameter for a closure.  Likewise, a MissingMethodException
is thrown when referencing a statically imported method in the same manner.  This only occurs
when calling the method without specifying the optional parameter.
> I have confirmed that this issue does not impact methods with optional parameters.
> The following code illustrates the issue:
> {code}import static java.util.Collections.EMPTY_LIST
> import static java.util.Collections.emptyList
> Closure closureWithStaticImport = { List list = EMPTY_LIST -> }
> Closure closureWithoutStaticImport = { List list = Collections.EMPTY_LIST -> }
> try {
>   // An exception is thrown when the statically imported optional parameter is not specified
>   closureWithStaticImport()
> } catch (MissingPropertyException e) {
>   assert e.message == 'No such property: EMPTY_LIST for class: staticImportTest'
>   e.printStackTrace()
> }
> // No exception is thrown when the optional parameter is specified
> closureWithStaticImport(EMPTY_LIST)
> // No exception is thrown when the optional parameter is not statically imported
> closureWithoutStaticImport()
> void methodWithStaticImport(List list = EMPTY_LIST) {}
> // No exception is thrown when a method's optional parameter uses a static import
> methodWithStaticImport()
> Closure closureWithStaticImportMethod = { List list = emptyList() -> }
> try {
>   // An exception is thrown when the statically imported optional parameter is not specified
>   closureWithStaticImportMethod()
> } catch (MissingMethodException e) {
>   assert e.message == 'No signature of method: staticImportTest.emptyList() is applicable
for argument types: () values: []'
>   e.printStackTrace()
> }{code}



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

Mime
View raw message