Details
-
Type:
Test
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.6-beta-1
-
Fix Version/s: 1.5.7
-
Component/s: groovy-jdk
-
Labels:None
-
Environment:Originally Run on OS-X
-
Testcase included:yes
-
Patch Submitted:Yes
-
Number of attachments :
Description
The JavaDoc of flatten says: "This collection and any nested collections have their contents (recursively) added to the new collection." However, if it encounters a map, it exacts the value list and flattens that. This is odd on two points – 1) a Map is not a Collection, so it shouldn't be touched by #flatten according to that definition, and 2) there is no map#flatten which corresponds to this behavior.
This makes it sound like a bug to me, but there may be existing code dependent on the issue. So the attached patches just document and demonstrate the issue.
Attachments
Issue Links
| This issue relates to: | ||||
| GROOVY-2904 | [ [a:1, b:2, c:3] ].flatten() -> [ 1, 2, 3 ], but should be [ [a:1, b:2, c:3] ] |
|
|
|
My inclination is that the Map behavior isn't widely used and was provided as a feature without any real requirement but if we think someone is relyign on this behavior then I guess we should leave it and document it.