[
https://issues.apache.org/jira/browse/GROOVY-9515?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Sun updated GROOVY-9515:
-------------------------------
Description:
{code:java}
import org.codehaus.groovy.control.CompilerConfiguration
def config = new CompilerConfiguration()
config.optimizationOptions.indy = true
new GroovyShell(config).evaluate '''
def x(int a) {a}
def x(int a, int b) {a + b}
def y(p) {
x(*p)
}
assert 1 == y([1])
assert 3 == y([1, 2])
'''
{code}
Error message:
{code:java}
java.lang.IllegalArgumentException: array is not of length 1
at Script1.y(Script1.groovy:5)
at Script1.run(Script1.groovy:8)
at ConsoleScript1.run(ConsoleScript1:5)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
{code}
> MethodHandle with spread args should not be cached
> --------------------------------------------------
>
> Key: GROOVY-9515
> URL: https://issues.apache.org/jira/browse/GROOVY-9515
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Reporter: Daniel Sun
> Assignee: Daniel Sun
> Priority: Major
> Fix For: 4.0.0-alpha-1, 3.0.4
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> {code:java}
> import org.codehaus.groovy.control.CompilerConfiguration
> def config = new CompilerConfiguration()
> config.optimizationOptions.indy = true
> new GroovyShell(config).evaluate '''
> def x(int a) {a}
> def x(int a, int b) {a + b}
> def y(p) {
> x(*p)
> }
> assert 1 == y([1])
> assert 3 == y([1, 2])
> '''
> {code}
> Error message:
> {code:java}
> java.lang.IllegalArgumentException: array is not of length 1
> at Script1.y(Script1.groovy:5)
> at Script1.run(Script1.groovy:8)
> at ConsoleScript1.run(ConsoleScript1:5)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)