From 888892b8c17179e53cdc997abfa785333ece26cd Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 10 Jul 2026 20:40:38 +0100 Subject: Handle boxing in builder methods for list fields --- .../compiler/output/generators/javatypes/JavaTypesGenerator.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java index b445747..de2596d 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java @@ -264,7 +264,8 @@ public class JavaTypesGenerator implements Generator { fieldConstructedNativeType.constructor().equals(NativeTypes.LIST) ) { var elementType = fieldConstructedNativeType.args().getFirst(); - var javaElementType = generateTypeRef(elementType, context); + var javaElementUnboxedType = generateTypeRef(elementType, context); + var javaElementBoxedType = this.javaGenerator.generateReferenceTypeRef(elementType); var singularFieldName = field.name().endsWith("s") ? field.name().substring(0, field.name().length() - 1) @@ -279,7 +280,7 @@ public class JavaTypesGenerator implements Generator { JavaMethodKind.INSTANCE, builderJavaTypeRef, List.of( - new JavaParam(javaElementType, javaElementName) + new JavaParam(javaElementUnboxedType, javaElementName) ), List.of(), new JavaBlock(List.of( @@ -287,7 +288,7 @@ public class JavaTypesGenerator implements Generator { Optional.empty(), javaFieldName, new JavaNewExpression( - JavaTypeRef.arrayList(javaElementType), + JavaTypeRef.arrayList(javaElementBoxedType), List.of(new JavaFieldAccess(JavaRef.THIS, javaFieldName)) ) ), @@ -320,7 +321,7 @@ public class JavaTypesGenerator implements Generator { Optional.empty(), javaFieldName, new JavaNewExpression( - JavaTypeRef.arrayList(javaElementType), + JavaTypeRef.arrayList(javaElementBoxedType), List.of(new JavaFieldAccess(JavaRef.THIS, javaFieldName)) ) ), -- cgit v1.2.3