Oscar N created GROOVY-11309:
--------------------------------

             Summary: Optimise bytecode for empty list expressions
                 Key: GROOVY-11309
                 URL: https://issues.apache.org/jira/browse/GROOVY-11309
             Project: Groovy
          Issue Type: Improvement
          Components: class generator, Compiler, performance
    Affects Versions: 5.0.0-alpha-5, 4.0.18, 3.0.20, 2.5.23
            Reporter: Oscar N


I have the following code:

{code:groovy}
class Book {
    String title
    String blurb = ''
    List<String> authors = []
}
{code}

When checking the compiled output, the creation of the empty list goes through 
ScriptBytecodeAdapter:

{code:java}
@Generated
public Book() {
    String var1 = "";
    this.blurb = var1;
    List var2 = ScriptBytecodeAdapter.createList(new Object[0]);
    this.authors = var2;
    MetaClass var3 = this.$getStaticMetaClass();
    this.metaClass = var3;
}
{code}

This case can be simplified to "List var2 = new ArrayList()", which would avoid 
some overhead and slightly improve @POJO support.



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

Reply via email to