Oscar N created GROOVY-11284:
--------------------------------
Summary: Generated size() method on records performs unnecessary
boxing
Key: GROOVY-11284
URL: https://issues.apache.org/jira/browse/GROOVY-11284
Project: Groovy
Issue Type: Bug
Affects Versions: 4.0.17
Reporter: Oscar N
I have the following code:
{code:groovy}
import groovy.transform.CompileStatic
@CompileStatic
static void main(String[] args) {
println(new Person("John", 42).size())
}
@CompileStatic
record Person(String name, int age) {} {code}
When checking the compiled output, the size method performs unnecessary boxing:
{code:java}
@Generated
public final int size() {
return Integer.valueOf(2);
}
{code}
{code:java}
// access flags 0x11
public final size()I
@Lgroovy/transform/Generated;()
L0
ICONST_2
INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integer;
INVOKEVIRTUAL java/lang/Integer.intValue ()I
IRETURN
L1
LOCALVARIABLE this Lorg/example/Person; L0 L1 0
MAXSTACK = 1
MAXLOCALS = 1
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)