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

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

eric-milles commented on code in PR #1901:
URL: https://github.com/apache/groovy/pull/1901#discussion_r1228817229


##########
src/main/java/groovy/util/GroovyCollections.java:
##########
@@ -34,50 +34,21 @@
 import java.util.Set;
 import java.util.TreeSet;
 
-/**
- * A Collections utility class
- */
 public class GroovyCollections {
+
     /**
      * Finds all combinations of items from the given collections.
      *
      * @param collections the given collections
-     * @return a List of the combinations found
+     * @return A list of the combinations found.
      * @see #combinations(Iterable)
      */
-    public static List combinations(Object[] collections) {
+    public static List<List> combinations(Object[]    collections) {

Review Comment:
   When collapsed, they all line up:
   
![image](https://github.com/apache/groovy/assets/18193802/6935ac41-0a25-4789-a5eb-bee869e087d2)





> Glitch with native lambda support when supplied with incorrect arity lambda
> ---------------------------------------------------------------------------
>
>                 Key: GROOVY-8499
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8499
>             Project: Groovy
>          Issue Type: Bug
>            Reporter: Paul King
>            Assignee: Eric Milles
>            Priority: Major
>             Fix For: 5.0.0-alpha-1
>
>
> The following code works:
> {code}
> import groovy.transform.*
> @CompileStatic
> def method() {
>   ['ab'.chars, '12'.chars].combinations().stream().collect((x, y) -> 
> "$x$y").forEach{ println it }
> }
> method()
> {code}
> but if I make an error like this:
> {code}
> import groovy.transform.*
> @CompileStatic
> def method() {
>   ['ab'.chars, '12'.chars].combinations().stream().map((x, y) -> 
> "$x$y").forEach{ println it }
> }
> method()
> {code}
> I get the following error:
> {noformat}
> Exception thrown
> java.lang.BootstrapMethodError: call site initialization exception
>       at java.lang.invoke.CallSite.makeSite(CallSite.java:341)
>       at 
> java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:307)
>       at 
> java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:297)
>       at ConsoleScript33.method(ConsoleScript33:5)
>       at ConsoleScript33.run(ConsoleScript33:9)
>       at 
> groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:265)
>       at groovy.lang.GroovyShell.run(GroovyShell.java:378)
>       at groovy.lang.GroovyShell.run(GroovyShell.java:357)
>       at groovy.lang.GroovyShell.run(GroovyShell.java:173)
>       at groovy.lang.GroovyShell$run$0.call(Unknown Source)
>       at 
> groovy.ui.Console$_runScriptImpl_closure18.doCall(Console.groovy:1118)
>       at groovy.ui.Console$_runScriptImpl_closure18.doCall(Console.groovy)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:498)
>       at 
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:103)
>       at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
>       at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
>       at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1037)
>       at groovy.lang.Closure.call(Closure.java:419)
>       at groovy.lang.Closure.call(Closure.java:413)
>       at groovy.lang.Closure.run(Closure.java:500)
>       at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.invoke.LambdaConversionException: Incorrect number of 
> parameters for instance method invokeVirtual 
> ConsoleScript33$_method_lambda1.doCall:(ConsoleScript33,Object,Object)Object; 
> 2 captured parameters, 1 functional interface method parameters, 3 
> implementation parameters
>       at 
> java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:193)
>       at 
> java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:303)
>       at java.lang.invoke.CallSite.makeSite(CallSite.java:302)
>       ... 23 more
> {noformat}
> We should produce a sensible error message in this case.



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

Reply via email to