You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Jochen Theodorou (JIRA)" <ji...@apache.org> on 2017/05/19 20:16:04 UTC

[jira] [Commented] (GROOVY-8194) property access on a list acts like the spread operator

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

Jochen Theodorou commented on GROOVY-8194:
------------------------------------------

this is actually a heritage from the times we had no spread operator yet. We did not yet have a chance to really change this. So I agree this should be different, but for Groovy 1.x and Groovy 2.x this is the correct behaviour

> property access on a list acts like the spread operator
> -------------------------------------------------------
>
>                 Key: GROOVY-8194
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8194
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 2.4.4, 2.4.10
>            Reporter: zyro
>
> why does the following assertion pass?
> {code}
> class Dummy {
>     String name
> }
> def dummyOne = new Dummy(name: "dummy one")
> def dummyTwo = new Dummy(name: "dummy two")
> def dummies = [dummyOne, dummyTwo]
> assert dummies.name == ["dummy one", "dummy two"]
> {code}
> imho, {{dummies.name}} should fail with a {{MissingPropertyException}}.
> the assertion should only pass if the spread operator is actually used like
> {code}
> assert dummies*.name == ["dummy one", "dummy two"]
> {code}
> reproduced with groovy-2.4.4 and 2.4.10.
> same behavior if the list is defined inline or if the list is assigned to a variable first.
> thanks, zyro



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)