Details
Description
class SpreadMapBug extends GroovyTestCase { void test() { def x = 0 assertEquals([a:1, b:1], [a:1, *:[b:++x]]) // fails; actual value: [a:1, b:2] } }
Maybe this bug is related to the (strange) AST representation for a spread map expression (at least that's how I found the bug):
"*:[b:++x]" is a MapEntryExpression whose
- key is a SpreadMapExpression whose expression is a MapExpression representing "[b:++x]"
- value is a MapExpression representing "[b:++x]".
That makes two MapExpressionS...