[ https://issues.apache.org/jira/browse/GROOVY-8024?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15966272#comment-15966272 ]
Daniil Ovchinnikov commented on GROOVY-8024: -------------------------------------------- [~paulk] I'm getting the following behaviour in 2.5.0-alpha-1: {code} def a = ['foo'] def m = [foo: 42] println m.get(*a) // 42 println m.getAt(*a) // 42 println m[*a] // null {code} Is it intended? > Subscript operator with spread argument > --------------------------------------- > > Key: GROOVY-8024 > URL: https://issues.apache.org/jira/browse/GROOVY-8024 > Project: Groovy > Issue Type: Bug > Affects Versions: 2.4.7 > Reporter: Daniil Ovchinnikov > Assignee: Paul King > > {code} > def mm = [:] > mm[*[1, 2, 3]] += "sss" > println mm > {code} > {noformat} > Error:Groovyc: While compiling untitled1: BUG! exception in phase 'class > generation' in source unit > '/Users/danyjb/IdeaProjects/untitled1/src/priorities/test.groovy' > SpreadExpression should not be visited here > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitSpreadExpression(AsmClassGenerator.java:687) > at > org.codehaus.groovy.ast.expr.SpreadExpression.visit(SpreadExpression.java:41) > at > org.codehaus.groovy.classgen.asm.ExpressionAsVariableSlot.visit(ExpressionAsVariableSlot.java:55) > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitBytecodeExpression(AsmClassGenerator.java:1984) > at > org.codehaus.groovy.classgen.BytecodeExpression.visit(BytecodeExpression.java:47) > at > org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:392) > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) > at > org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:459) > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:767) > at > org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) > at > org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.evaluateArrayAssignmentWithOperator(BinaryExpressionHelper.java:553) > at > org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.evaluateBinaryExpressionWithAssignment(BinaryExpressionHelper.java:570) > at > org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.eval(BinaryExpressionHelper.java:152) > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitBinaryExpression(AsmClassGenerator.java:638) > at > org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:51) > at > org.codehaus.groovy.classgen.asm.StatementWriter.writeExpressionStatement(StatementWriter.java:612) > at > org.codehaus.groovy.classgen.asm.OptimizingStatementWriter.writeExpressionStatement(OptimizingStatementWriter.java:357) > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitExpressionStatement(AsmClassGenerator.java:620) > at > org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42) > at > org.codehaus.groovy.classgen.asm.StatementWriter.writeBlockStatement(StatementWriter.java:84) > at > org.codehaus.groovy.classgen.asm.OptimizingStatementWriter.writeBlockStatement(OptimizingStatementWriter.java:158) > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitBlockStatement(AsmClassGenerator.java:566) > at > org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:104) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115) > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitStdMethod(AsmClassGenerator.java:430) > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitConstructorOrMethod(AsmClassGenerator.java:387) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126) > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitMethod(AsmClassGenerator.java:507) > at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1078) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:53) > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitClass(AsmClassGenerator.java:233) > at > org.codehaus.groovy.control.CompilationUnit$16.call(CompilationUnit.java:813) > at > org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1053) > at > org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:591) > at > org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569) > at > org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)