diff options
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java | 8 |
1 files changed, 6 insertions, 2 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 2a00d2b..5b1a282 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 @@ -233,7 +233,11 @@ public class JavaPreciselyMatchersGenerator implements Generator { case TypeOrConstructor.Type<SimpleStructType> _ -> Set.<TypeParam>of(); }; - var javaFieldTypeRef = this.javaGenerator.generateReferenceTypeRef(fieldType, typeParams); + var javaFieldMatcherTypeRef = !typeParams.isEmpty() && typeParams.contains(fieldType) + ? genericMatcherRef(JavaTypeArg.wildcard()) + : genericMatcherRef(JavaTypeArg.superType( + this.javaGenerator.generateReferenceTypeRef(fieldType, typeParams) + )); var javaFieldName = this.javaGenerator.generateFieldName(field.name()); methods.add(new JavaMethodDeclaration( @@ -243,7 +247,7 @@ public class JavaPreciselyMatchersGenerator implements Generator { List.of(), javaMatcherTypeRef, List.of( - new JavaParam(genericMatcherRef(JavaTypeArg.superType(javaFieldTypeRef)), javaFieldName) + new JavaParam(javaFieldMatcherTypeRef, javaFieldName) ), List.of(), new JavaBlock(List.of( |
