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

Eric Milles commented on GROOVY-7934:
-------------------------------------

This is not so much a problem with the type checker as it is with the 
definition of inject. The method is declared “<E, T, U extends T, V extends T> 
T inject(Collection<E> c, U initialValue, Closure<V> xform)”. So there is no 
relationship between the collection elements and the initial value or combiner 
function. 

> 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
>            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



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

Reply via email to