[ https://issues.apache.org/jira/browse/GROOVY-10597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17527799#comment-17527799 ]
Christopher Smith commented on GROOVY-10597: -------------------------------------------- [~emilles] Does the update make sense? > Permit spread operator in static mode for varargs > ------------------------------------------------- > > Key: GROOVY-10597 > URL: https://issues.apache.org/jira/browse/GROOVY-10597 > Project: Groovy > Issue Type: Improvement > Components: Static Type Checker > Affects Versions: 4.0.2 > Reporter: Christopher Smith > Priority: Minor > > I have a varargs method that takes many parameters for inclusion into an > output JSON array. I am needing to preprocess some of these parameters, and I > tried to use the spread operator to deconstruct them inline. However, I'm > receiving the error "The spread operator cannot be used" because the compiler > can't determine arity. > This is perfectly sensible, but in the specific case where the spread > operator would be applied in a position where its values expand into a > varargs, as long as the element type produced by the spread is a subtype of > the declared varargs type, it would be helpful for the spread to succeed. > Sample: > {code:groovy} > @CompileStatic > class Groovy10597 { > static void output(int code, String[] widgets) { > println "$code: ${Arrays.toString(widgets)}" > } > static List<String> createWidgets() { > ['w1', 'w2'] > } > static void sample() { > output(42, 'w0', *createWidgets(), 'w3') > } > } > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)