Oscar N created GROOVY-11286:
--------------------------------

             Summary: Extraneous bytecode generated after calls to void methods
                 Key: GROOVY-11286
                 URL: https://issues.apache.org/jira/browse/GROOVY-11286
             Project: Groovy
          Issue Type: Bug
          Components: Compiler
    Affects Versions: 4.0.17, 5.0.0-alpha-4, 3.0.20, 2.5.23
            Reporter: Oscar N


I have the following code:

{code:groovy}
package org.example

import groovy.transform.CompileStatic

@CompileStatic
final class Main {
    static void main(String[] args) {
        exampleMethod()
    }

    static void exampleMethod() {}
}

{code}

When looking at the compiled output, null is pushed to the stack then 
immediately popped:

{code:java}
// access flags 0x89
public static varargs main([Ljava/lang/String;)V
 L0
  LINENUMBER 8 L0
  INVOKESTATIC org/example/Main.exampleMethod ()V
  ACONST_NULL
  POP
 L1
  LINENUMBER 9 L1
  RETURN
  LOCALVARIABLE args [Ljava/lang/String; L0 L1 0
  MAXSTACK = 1
  MAXLOCALS = 1
{code}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to