Github user danielsun1106 commented on a diff in the pull request: https://github.com/apache/groovy/pull/792#discussion_r216113948 --- Diff: subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java --- @@ -2337,14 +2337,11 @@ public Expression visitPathElement(PathElementContext ctx) { this.visitNamedPropertyArgs(ctx.namedPropertyArgs()); Expression right; - if (mapEntryExpressionList.size() == 1) { - MapEntryExpression mapEntryExpression = mapEntryExpressionList.get(0); - - if (mapEntryExpression.getKeyExpression() instanceof SpreadMapExpression) { - right = mapEntryExpression.getKeyExpression(); - } else { - right = mapEntryExpression; - } + if (mapEntryExpressionList.size() == 0) { + // expecting list of MapEntryExpressions later so use SpreadMap to smuggle empty MapExpression to later stages + right = new SpreadMapExpression(configureAST(new MapExpression(), ctx.namedPropertyArgs())); --- End diff -- It's better to `configureAST` the instance of `SpreadMapExpression` too, or its node position will be missing.
---