@@ -229,6 +229,25 @@ void testWildcard(Index index) {
229
229
assertThat ( superStuffFieldWildcardType .isExtends () ).isFalse ();
230
230
assertThat ( superStuffFieldWildcardType .getBound ().getTypeKind () ).isEqualTo ( TypeDetails .Kind .CLASS );
231
231
assertThat ( superStuffFieldWildcardType .getBound ().asClassType ().getClassDetails ().getName () ).endsWith ( "Stuff" );
232
+
233
+ final FieldDetails namedStuffField = classDetails .findFieldByName ( "namedStuff" );
234
+ final TypeDetails namedStuffFieldType = namedStuffField .getType ();
235
+ assertThat ( namedStuffFieldType .isImplementor ( Collection .class ) ).isFalse ();
236
+ assertThat ( namedStuffFieldType .isImplementor ( List .class ) ).isFalse ();
237
+ assertThat ( namedStuffFieldType .isImplementor ( Set .class ) ).isFalse ();
238
+ assertThat ( namedStuffFieldType .isImplementor ( Map .class ) ).isTrue ();
239
+ assertThat ( namedStuffFieldType .getTypeKind () ).isEqualTo ( TypeDetails .Kind .PARAMETERIZED_TYPE );
240
+ assertThat ( namedStuffFieldType .asParameterizedType ().getArguments () ).hasSize ( 2 );
241
+ assertThat ( namedStuffFieldType .asParameterizedType ().getArguments ().get ( 0 ).getTypeKind () ).isEqualTo ( TypeDetails .Kind .CLASS );
242
+ assertThat ( namedStuffFieldType .asParameterizedType ().getArguments ().get ( 0 ).asClassType ().getClassDetails ().toJavaClass () ).isEqualTo ( String .class );
243
+ assertThat ( namedStuffFieldType .asParameterizedType ().getArguments ().get ( 1 ).getTypeKind () ).isEqualTo ( TypeDetails .Kind .WILDCARD_TYPE );
244
+ final WildcardTypeDetails namedStuffFieldValueWildcardType = namedStuffFieldType .asParameterizedType ()
245
+ .getArguments ()
246
+ .get ( 1 )
247
+ .asWildcardType ();
248
+ assertThat ( namedStuffFieldValueWildcardType .isExtends () ).isTrue ();
249
+ assertThat ( namedStuffFieldValueWildcardType .getBound ().getTypeKind () ).isEqualTo ( TypeDetails .Kind .CLASS );
250
+ assertThat ( namedStuffFieldValueWildcardType .getBound ().asClassType ().getClassDetails ().getName () ).endsWith ( "Stuff" );
232
251
}
233
252
234
253
@ SuppressWarnings ("unused" )
@@ -266,5 +285,7 @@ static class Hat extends Stuff {
266
285
static class Things {
267
286
List <? extends Stuff > extendsStuff ;
268
287
List <? super Stuff > superStuff ;
288
+
289
+ Map <String , ? extends Stuff > namedStuff ;
269
290
}
270
291
}
0 commit comments