[ https://issues.apache.org/jira/browse/GROOVY-7934?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17789210#comment-17789210 ]
Eric Milles commented on GROOVY-7934: ------------------------------------- https://github.com/apache/groovy/commit/7e0471f7ff2e1cfbf77f67997e605990d6ed19f3 > Type inference breaks for Collection.inject > ------------------------------------------- > > Key: GROOVY-7934 > URL: https://issues.apache.org/jira/browse/GROOVY-7934 > Project: Groovy > Issue Type: Bug > Affects Versions: 2.4.6 > Reporter: Oliver Holp > Assignee: Eric Milles > Priority: Minor > Labels: CompileStatic > > The code below should not compile as the first parameter to the inject method > must be a string, but the integer 0 is handed in: > {code:groovy} > @CompileStatic > public static void main(String[] args) { > def inList = ["a", "b", "c"] > def outList = inList.inject(0, { a, b -> a + "," + b }) > println(outList) > } > {code} > I opened this issue as adviced in the reply to the same issue I asked on > stackoverflow: > http://stackoverflow.com/questions/39444838/chance-for-this-hole-in-groovy-staic-typing-to-be-fixed/39446458#39446458 > Java streams example (from link): > {code:java} > var list = java.util.Arrays.asList("a", "b", "c"); > var out = list.stream().reduce(0, (x,y) -> x + y); > System.out.println(out); > {code} > NOTE: You can use java streams apis in groovy: > {code:groovy} > @groovy.transform.CompileStatic > void test() { > def list = ['a','b','c'] > def str = list.stream().reduce("", (x,y) -> x + y) // STC error if "" is 0 > println str > } > test() > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)