diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-08-14 09:29:19 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-08-14 09:29:19 +0100 |
| commit | a8bdefad22ad6776aa8695dd403dcc300cf24543 (patch) | |
| tree | 14a31e6abbe824f7965e33bf6b7290e9c18f732c /src/main/java/org/zwobble | |
| parent | 1070928d39728d2aa4ae6d43aee20cb595f8584a (diff) | |
Use wildcard when field type is type param
Diffstat (limited to 'src/main/java/org/zwobble')
| -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( |
