[
https://issues.apache.org/jira/browse/GROOVY-11359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17839290#comment-17839290
]
Eric Milles edited comment on GROOVY-11359 at 4/20/24 9:03 PM:
---------------------------------------------------------------
So what is happening is your class {{Tst}} is statically compiled, but your
generated method {{getTruc_}} is not properly setup for static compilation. So
you can either write out the necessary metadata for that or you can tag your
method with {{{}@groovy.transform.CompileDynamic{}}}, which depending on the
compile stage that you generate the method, could be
{{methodNode.putNodeMetaData(StaticCompilationMetadataKeys.STATIC_COMPILE_NODE,
Boolean.FALSE);}}
Or you could remove static compilation from {{Tst}}
was (Author: emilles):
So what is happening is your class {{Tst}} is statically compiled, but your
generated method {{getTruc_}} is not properly setup for static compilation. So
you can either write out the necessary metadata for that or you can tag your
method with {{@groovy.transform.CompileDynamic}}, which depending on the
compile stage that you generate the method, could be
{{methodNode.putNodeMetaData(StaticCompilationMetadataKeys.STATIC_COMPILE_NODE,
Boolean.FALSE);}}
> ASTTransformation cause "General error during instruction selection"
> --------------------------------------------------------------------
>
> Key: GROOVY-11359
> URL: https://issues.apache.org/jira/browse/GROOVY-11359
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Affects Versions: 3.0.21
> Environment: $ java -fullversion
> openjdk full version "17.0.10+7"
> $ uname -a
> Linux auoHome 6.6.26-1-MANJARO #1 SMP PREEMPT_DYNAMIC Wed Apr 10 20:11:08 UTC
> 2024 x86_64 GNU/Linux
> Reporter: Adrien Guichard
> Priority: Major
> Fix For: 3.0.11
>
> Attachments: expect.ex, indent.groovy, testcase-asttransform-ko.tar.gz
>
>
> When assembling the *Grails* project, I do obtain the following stacktrace:
> java.lang.ArrayIndexOutOfBoundsException: size==0
> at
> org.codehaus.groovy.classgen.asm.OperandStack.ensureStackNotEmpty(OperandStack.java:279)
> at
> org.codehaus.groovy.classgen.asm.OperandStack.replace(OperandStack.java:271)
> at
> org.codehaus.groovy.classgen.AsmClassGenerator.visitCastExpression(AsmClassGenerator.java:815)
> at org.codehaus.groovy.ast.expr.CastExpression.visit(CastExpression.java:90)
> at
> org.codehaus.groovy.classgen.asm.StatementWriter.writeReturn(StatementWriter.java:615)
> [. . .]
> Tell me if you need a more complete stacktrace. I try to work around this
> bug, changing the AST, without success. The error looks the same {*}each
> time{*}.
> To reproduce:
> $ tar xvfz testcase-asttransform-ko.tar.gz
> $ cd groovyInfra
> $ ./gradlew publishMavenPublicationToMavenLocal
> $ cd ..
> $ cd t620g
> $ ./gradlew assemble
> => BROKEN HERE
> Thanks for your help !
--
This message was sent by Atlassian Jira
(v8.20.10#820010)