summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-07-10 20:40:38 +0100
committerMichael Williamson <mike@zwobble.org>2026-07-10 20:40:38 +0100
commit888892b8c17179e53cdc997abfa785333ece26cd (patch)
treefb16f5af50fee469dd67db3319920469f3e67dda /src
parent215ead6190a3c54969e93dd180632ca1e3574de2 (diff)
Handle boxing in builder methods for list fields
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java9
1 files changed, 5 insertions, 4 deletions
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))
)
),