You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Paul King (Jira)" <ji...@apache.org> on 2020/01/29 05:27:00 UTC
[jira] [Comment Edited] (GROOVY-9271) Fails to compile method with
parenthesis in function name
[ https://issues.apache.org/jira/browse/GROOVY-9271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17025017#comment-17025017 ]
Paul King edited comment on GROOVY-9271 at 1/29/20 5:26 AM:
------------------------------------------------------------
If we do another 2.4.x release, it will use ASM 7.2.
was (Author: paulk):
If we do another 2.4.x release, ASM should be bumped 7.2.
> Fails to compile method with parenthesis in function name
> ---------------------------------------------------------
>
> Key: GROOVY-9271
> URL: https://issues.apache.org/jira/browse/GROOVY-9271
> Project: Groovy
> Issue Type: Bug
> Components: bytecode
> Affects Versions: 2.4.16, 2.4.17
> Reporter: Oleg Rekutin
> Assignee: Paul King
> Priority: Major
> Labels: Regression
> Fix For: 2.4.19
>
> Time Spent: 2.5h
> Remaining Estimate: 0h
>
> Groovy 2.4.16 upgraded ASM from 6.0 to 6.1.x, which introduced this regression: [https://gitlab.ow2.org/asm/asm/issues/317868]
> This causes compilation to fail on methods names that have parentheses in them. The error thrown is:
> {code}java.lang.IllegalArgumentException
> at groovyjarjarasm.asm.Frame.getAbstractTypeFromDescriptor(Frame.java:335)
> at groovyjarjarasm.asm.Frame.push(Frame.java:544)
> at groovyjarjarasm.asm.Frame.execute(Frame.java:1036)
> at groovyjarjarasm.asm.MethodWriter.visitInvokeDynamicInsn(MethodWriter.java:1062)
> at org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter.finishIndyCall(InvokeDynamicWriter.java:121)
> at org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter.makeIndyCall(InvokeDynamicWriter.java:157)
> at org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter.makeCachedCall(InvokeDynamicWriter.java:97)
> at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:430)
> at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:137)
> at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:121)
> at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:497)
> at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:814)
> at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:70)
> at org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter.makeIndyCall(InvokeDynamicWriter.java:141)
> at org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter.makeCachedCall(InvokeDynamicWriter.java:97)
> at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:430)
> at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:137)
> at org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter.writeNormalConstructorCall(InvokeDynamicWriter.java:190)
> at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeConstructor(InvocationWriter.java:610)
> at org.codehaus.groovy.classgen.AsmClassGenerator.visitConstructorCallExpression(AsmClassGenerator.java:865)
> at org.codehaus.groovy.ast.expr.ConstructorCallExpression.visit(ConstructorCallExpression.java:46)
> at org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter.prepareIndyCall(InvokeDynamicWriter.java:112)
> at org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter.makeIndyCall(InvokeDynamicWriter.java:130)
> at org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter.makeCachedCall(InvokeDynamicWriter.java:97)
> at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:430)
> at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:137)
> at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:121)
> at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:497)
> at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:814)
> at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:70)
> at org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.evaluateCompareExpression(BinaryExpressionHelper.java:488)
> at org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.eval(BinaryExpressionHelper.java:133)
> at org.codehaus.groovy.classgen.AsmClassGenerator.visitBinaryExpression(AsmClassGenerator.java:685)
> at org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:51)
> at org.codehaus.groovy.classgen.AsmClassGenerator.visitBooleanExpression(AsmClassGenerator.java:807)
> at org.codehaus.groovy.ast.expr.BooleanExpression.visit(BooleanExpression.java:42)
> at org.codehaus.groovy.classgen.asm.AssertionWriter.writeAssertStatement(AssertionWriter.java:98)
> at org.codehaus.groovy.classgen.asm.StatementWriter.writeAssert(StatementWriter.java:570)
> at org.codehaus.groovy.classgen.AsmClassGenerator.visitAssertStatement(AsmClassGenerator.java:633)
> at org.codehaus.groovy.ast.stmt.AssertStatement.visit(AssertStatement.java:50)
> at org.codehaus.groovy.classgen.asm.StatementWriter.writeBlockStatement(StatementWriter.java:93)
> at org.codehaus.groovy.classgen.AsmClassGenerator.visitBlockStatement(AsmClassGenerator.java:613)
> at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
> at org.codehaus.groovy.classgen.asm.StatementWriter.writeBlockStatement(StatementWriter.java:93)
> at org.codehaus.groovy.classgen.AsmClassGenerator.visitBlockStatement(AsmClassGenerator.java:613)
> 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:477)
> at org.codehaus.groovy.classgen.AsmClassGenerator.visitConstructorOrMethod(AsmClassGenerator.java:413)
> at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126)
> at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethod(AsmClassGenerator.java:554)
> at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1081)
> at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:53)
> at org.codehaus.groovy.classgen.AsmClassGenerator.visitClass(AsmClassGenerator.java:259)
> at org.codehaus.groovy.control.CompilationUnit$17.call(CompilationUnit.java:848)
> at org.codehaus.groovy.control.CompilationUnit$17.call(CompilationUnit.java:865)
> at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1087)
> at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:624)
> ){code}
> The fix is to upgrade ASM to version 7.1.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)