From 08fd0f4fd033ac65db684d9396c2d568370d6fb7 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 18 May 2026 18:50:00 +0100 Subject: Extract JavaTypeRef.ref() --- .../output/generators/javatypes/JavaTypesGenerator.java | 6 +++--- .../hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java | 4 ++++ .../hobgoblin/compiler/output/lang/java/JavaWriterTests.java | 10 +++++----- 3 files changed, 12 insertions(+), 8 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 c4bdccc..c3bf312 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 @@ -169,17 +169,17 @@ public class JavaTypesGenerator implements Generator { } else if (type.equals(NativeTypes.STRING)) { yield JavaTypeRef.STRING; } else if (type.equals(NativeTypes.LIST_INNER)) { - yield new JavaTypeRef(List.of("java", "util"), "List", List.of()); + yield JavaTypeRef.ref(List.of("java", "util"), "List"); } else { throw new UnsupportedOperationException("TODO"); } } case StructType structType -> - new JavaTypeRef(namespaceToJavaPackageParts(structType.namespaceName()), structType.name(), List.of()); + JavaTypeRef.ref(namespaceToJavaPackageParts(structType.namespaceName()), structType.name()); case SumType sumType -> - new JavaTypeRef(namespaceToJavaPackageParts(sumType.namespaceName()), sumType.name(), List.of()); + JavaTypeRef.ref(namespaceToJavaPackageParts(sumType.namespaceName()), sumType.name()); case TypeLevelValueType typeLevelValueType -> throw new UnsupportedOperationException("TODO"); diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java index bba6632..991e00f 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java @@ -7,6 +7,10 @@ public record JavaTypeRef(List packageName, String name, List packageName, String name) { + return new JavaTypeRef(packageName, name, List.of()); + } + public static final JavaTypeRef INT = primitive("int"); public static final JavaTypeRef LONG = primitive("long"); public static final JavaTypeRef STRING = primitive("String"); diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java index a19f5a2..7ac2d29 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java @@ -101,8 +101,8 @@ public class JavaWriterTests { var java = new JavaInterfaceDeclaration( "Shape", List.of( - new JavaTypeRef(List.of("abc", "def"), "One", List.of()), - new JavaTypeRef(List.of("abc", "def"), "Two", List.of()) + JavaTypeRef.ref(List.of("abc", "def"), "One"), + JavaTypeRef.ref(List.of("abc", "def"), "Two") ), DocComment.EMPTY ); @@ -294,7 +294,7 @@ public class JavaWriterTests { @Test public void typeRefWithoutArgsHasNoAngleBrackets() throws IOException { - var java = new JavaTypeRef(List.of("abc", "def"), "One", List.of()); + var java = JavaTypeRef.ref(List.of("abc", "def"), "One"); var string = write(writer -> writer.writeTypeRef(java)); @@ -307,8 +307,8 @@ public class JavaWriterTests { List.of("abc", "def"), "One", List.of( - new JavaTypeRef(List.of(), "Two", List.of()), - new JavaTypeRef(List.of(), "Three", List.of()) + JavaTypeRef.ref(List.of(), "Two"), + JavaTypeRef.ref(List.of(), "Three") ) ); -- cgit v1.2.3