Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
For the following script:
@groovy.transform.CompileStatic def method() { def list = [].withDefault{ it.longValue() } list[0] = list[3] assert list[0] == 3 && list[0].class == Long } method()
The list access call list[3] doesn't funnel through the ListWithDefault.getAt(int) 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.
Attachments
Issue Links
- links to