Paul King created GROOVY-7905:
---------------------------------

             Summary: ListWithDefault DGM methods aren't type inference friendly
                 Key: GROOVY-7905
                 URL: https://issues.apache.org/jira/browse/GROOVY-7905
             Project: Groovy
          Issue Type: Improvement
            Reporter: Paul King
            Assignee: Paul King


For the following script:
{code}
@groovy.transform.CompileStatic
def method() {
    def list = [].withDefault{ it.longValue() }
    list[0] = list[3]
    assert list[0] == 3 && list[0].class == Long
}

method()
{code}
The list access call {{list[3]}} doesn't funnel through the {{ListWithDefault}} 
method but instead the {{DGM.getAt(List, int)}} method since {{List}} is the 
inferred type. The {{withDefault}} methods could instead return the more 
specific type and then the correct type will be inferred and the expected 
behavior is observed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to