You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Mykola Golubyev (Jira)" <ji...@apache.org> on 2020/08/16 02:13:00 UTC

[jira] [Created] (GROOVY-9692) Adding extension method 'call' on ArrayList with Closure as a parameter stopped working in 3.0.x

Mykola Golubyev created GROOVY-9692:
---------------------------------------

             Summary: Adding extension method 'call' on ArrayList with Closure as a parameter stopped working in 3.0.x
                 Key: GROOVY-9692
                 URL: https://issues.apache.org/jira/browse/GROOVY-9692
             Project: Groovy
          Issue Type: Bug
          Components: parser
    Affects Versions: 3.0.5
            Reporter: Mykola Golubyev
         Attachments: groovy3-call-regression.zip

Custom extension like this
{code:java}
class CustomExtension {
    static MyData call(ArrayList header, Closure code) {
        new MyData(data: header.join(":") + " " + code())
    }

    static MyData test(ArrayList header, Closure code) {
        new MyData(data: header.join(":") + " " + code())
    }
}

{code}
used to work with Groovy 2.5.12

 

 
{code:java}
class CustomExtensionTest {
    @Test
    void "implicit call on array with closure used to work"() {
        def result = [1, 2, 3] {
            "world"
        }

        assert result.data == '1:2:3 world'
    }

    @Test
    void "explicit call on array with closure still works"() {
        def result = [1, 2, 3].test {
            "world"
        }

        assert result.data == '1:2:3 world'
    }
}
{code}
with Groovy 3.0.x I get this error instead 

 
{code:java}
groovy.lang.MissingMethodException: No signature of method: regression.CustomExtensionTest.[1, 2, 3]() is applicable for argument types: (regression.CustomExtensionTest$_call_on_array_with_closure_used_to_work_closure1) values: [regression.CustomExtensionTest$_call_on_array_with_closure_used_to_work_closure1@8b87145]
{code}
Is this intentional?

I have attached a maven project to reproduce.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)