From a8bdefad22ad6776aa8695dd403dcc300cf24543 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 14 Aug 2026 09:29:19 +0100 Subject: Use wildcard when field type is type param --- .../javapreciselymatchers/JavaPreciselyMatchersGenerator.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/main/java/org') 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 _ -> Set.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( -- cgit v1.2.3