[
https://issues.apache.org/jira/browse/GROOVY-11288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17888064#comment-17888064
]
Eric Milles edited comment on GROOVY-11288 at 10/10/24 6:24 PM:
----------------------------------------------------------------
https://github.com/apache/groovy/commit/cdb69c922e58d229540bcbb5b9585df061a3150f
https://github.com/apache/groovy/commit/49057f0826c08fea17fcaaed6203e067ad72b6f1
was (Author: emilles):
https://github.com/apache/groovy/commit/cdb69c922e58d229540bcbb5b9585df061a3150f
> Unnecessary bytecode generated after variable assignment
> --------------------------------------------------------
>
> Key: GROOVY-11288
> URL: https://issues.apache.org/jira/browse/GROOVY-11288
> Project: Groovy
> Issue Type: Bug
> Components: class generator, Compiler
> Reporter: Oscar N
> Assignee: Eric Milles
> Priority: Minor
> Fix For: 5.0.0-alpha-11
>
>
> I have the following code:
> {code:groovy}
> package org.example
> import groovy.transform.CompileStatic
> @CompileStatic
> final class Main {
> static void main(String[] args) {
> int three = 3
> String str = 'foo'
> }
> }
> {code}
> When looking at the compiled output, the variable is loaded and immediately
> popped after storing:
> {code:java}
> // access flags 0x89
> public static varargs main([Ljava/lang/String;)V
> L0
> LINENUMBER 8 L0
> ICONST_3
> ISTORE 1
> L1
> ILOAD 1
> POP
> L2
> LINENUMBER 9 L2
> LDC "foo"
> ASTORE 2
> L3
> ALOAD 2
> POP
> L4
> LINENUMBER 10 L4
> RETURN
> LOCALVARIABLE args [Ljava/lang/String; L0 L4 0
> LOCALVARIABLE three I L1 L4 1
> LOCALVARIABLE str Ljava/lang/String; L3 L4 2
> MAXSTACK = 1
> MAXLOCALS = 3
> {code}
> This issue also occurs in dynamic compilation mode.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)