@@ -229,6 +229,25 @@ void testWildcard(Index index) {
229229 assertThat ( superStuffFieldWildcardType .isExtends () ).isFalse ();
230230 assertThat ( superStuffFieldWildcardType .getBound ().getTypeKind () ).isEqualTo ( TypeDetails .Kind .CLASS );
231231 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" );
232251 }
233252
234253 @ SuppressWarnings ("unused" )
@@ -266,5 +285,7 @@ static class Hat extends Stuff {
266285 static class Things {
267286 List <? extends Stuff > extendsStuff ;
268287 List <? super Stuff > superStuff ;
288+
289+ Map <String , ? extends Stuff > namedStuff ;
269290 }
270291}
0 commit comments