summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-06-12 16:09:28 +0100
committerMichael Williamson <mike@zwobble.org>2026-06-12 16:09:28 +0100
commit25e248a60a8694647496785888402cb35f5712fd (patch)
tree198c51fac4c2fe953fdc277fd36d1f9d6116c26c /src/main/java
parent5e716345a8863240b87456dd836970ad65a03449 (diff)
Implement toMatcher() with instanceOf()
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java15
1 files changed, 12 insertions, 3 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 3378f9c..ce64b5e 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
@@ -84,7 +84,12 @@ public class JavaPreciselyMatchersGenerator implements Generator {
var matcherTypeName = structDefinition.name() + "Matcher";
var structType = structDefinition.type();
- var javaTypeRef = JavaTypeRef.topLevel(
+ var javaStructTypeRef = JavaTypeRef.topLevel(
+ namespaceToJavaPackageParts(structType.namespaceName()),
+ structDefinition.name()
+ );
+
+ var javaMatcherTypeRef = JavaTypeRef.topLevel(
namespaceToJavaPackageParts(structType.namespaceName()),
matcherTypeName
);
@@ -138,11 +143,15 @@ public class JavaPreciselyMatchersGenerator implements Generator {
JavaTypeRef.topLevelGeneric(List.of("org", "zwobble", "precisely"), "Matcher", List.of(JavaTypeRef.OBJECT)),
List.of(),
new JavaBlock(List.of(
- new JavaReturn(new JavaNullLiteral())
+ new JavaReturn(new JavaStaticMethodCall(
+ JavaTypeRef.topLevel(List.of("org", "zwobble", "precisely"), "Matchers"),
+ "instanceOf",
+ List.of(new JavaStaticFieldAccess(javaStructTypeRef, "class"))
+ ))
))
)
),
- JavaCustomArea.type(javaTypeRef, "body"),
+ JavaCustomArea.type(javaMatcherTypeRef, "body"),
DocComment.EMPTY
);
}