Multi-assignment statement in "setup" block does not compile
Opened this issue · 0 comments
GoogleCodeExporter commented
I have a "setup" block in my test with the following code:
def (parentGroupId, childGroupId1, childGroupId2) = createGroupWithAssociations()
The method being invoked returns a List of three items. When I try to run the
test I get the following compilation error:
java.lang.ClassCastException: org.codehaus.groovy.ast.expr.ArgumentListExpression cannot be cast to org.codehaus.groovy.ast.expr.VariableExpression
at org.codehaus.groovy.ast.expr.DeclarationExpression.getVariableExpression(DeclarationExpression.java:100)
at org.spockframework.compiler.SpecRewriter.moveVariableDeclarations(SpecRewriter.java:538)
...
See attachment for full stacktrace.
When I rewrite the code so that it doesn't use Groovy's multi-assignment, the
test compiles and passes fine:
def groupIds = createGroupWithAssociations()
def parentGroupId = groupIds[0]
def childGroupId1 = groupIds[1]
def childGroupId2 = groupIds[2]
Using Grails 2.3.8 and thus:
=> spock-core:0.7-groovy-2.0
=> groovy-all:2.1.9
Please provide any additional information below. You can also assign
labels.
Original issue reported on code.google.com by vpazi...@gmail.com
on 14 Aug 2014 at 9:55
Attachments: