Björn Kautler created GROOVY-12309:
--------------------------------------

             Summary: Closure calls with Object[] parameter under static 
compilation get the wrong argument
                 Key: GROOVY-12309
                 URL: https://issues.apache.org/jira/browse/GROOVY-12309
             Project: Groovy
          Issue Type: Bug
    Affects Versions: 4.0.31, 5.0.3, 6.0.0-alpha-1
            Reporter: Björn Kautler


With
{code:java}
class Foo {
  def foo() {
    { Object[] foo -> println(foo) }.call(new Object[] { 'foo' })
  }
}
new Foo().foo() {code}
you get {{[foo]}} printed.
Adding {{@groovy.transform.CompileStatic}} it prints {{{}[[foo]]{}}}.
Removing the {{Object[]}} with added static-compilation it again prints 
{{{}[foo]{}}}.

The closure under static compilation should get the same parameter and not 
wrapped in another {{{}Object[]{}}}.

This is caused by the {{call}} / {{doCall}} methods generated for the closure.
The {{call}} call where it happens in production is a precompiled Java code 
that gives the same argument in either case.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to