[ https://issues.apache.org/jira/browse/GROOVY-11288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles updated GROOVY-11288: --------------------------------- Language: groovy > Unnecessary bytecode generated after variable assignment > -------------------------------------------------------- > > Key: GROOVY-11288 > URL: https://issues.apache.org/jira/browse/GROOVY-11288 > Project: Groovy > Issue Type: Bug > Components: bytecode, Compiler > Affects Versions: 2.5.23, 3.0.20, 5.0.0-alpha-4, 4.0.17 > Reporter: Oscar N > Priority: Minor > > 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)