summaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-06-12 16:22:16 +0100
committerMichael Williamson <mike@zwobble.org>2026-06-12 16:22:16 +0100
commit9308b348a4462b3d96f188881660d4d40ebc0da8 (patch)
tree5d1ee078c4d05ffe08ccba8f9915942a06a46505 /src/main/java/org
parenta1b78ec441aea70ae7494ca2b2925720d3f4ab3c (diff)
Add private constructor to struct matchers
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java8
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeRef.java5
2 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java
index 8b89966..6849387 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java
@@ -104,6 +104,14 @@ public class JavaPreciselyMatchersGenerator implements Generator {
)
),
List.of(
+ new JavaConstructorDeclaration(
+ matcherTypeName,
+ JavaVisibility.PRIVATE,
+ List.of(
+ new JavaParam(JavaTypeRef.list(matcherRef(javaStructTypeRef)), "submatchers")
+ ),
+ new JavaBlock(List.of())
+ ),
new JavaMethodDeclaration(
"match",
JavaVisibility.PUBLIC,
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 e92c5a8..74dbbfb 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
@@ -38,5 +38,10 @@ public record JavaTypeRef(List<String> packageName, List<String> typeNames, List
public static final JavaTypeRef VOID = primitive("void");
public static final JavaTypeRef LIST = topLevel(List.of("java", "util"), "List");
+
+ public static JavaTypeRef list(JavaTypeRef elementType) {
+ return new JavaTypeRef(LIST.packageName, LIST.typeNames, List.of(elementType));
+ }
+
public static final JavaTypeRef OBJECT = topLevel(List.of("java", "lang"), "Object");
}