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)