@@ -498,7 +498,27 @@ public void testTypesMatch() throws IllegalAccessException, InvocationTargetExce
498498 assertFalse ((Boolean ) typesMatchMethod .invoke (typeResolver , matchAListResolved , matchBListResolved ));
499499 assertFalse ((Boolean ) typesMatchMethod .invoke (typeResolver , matchBListResolved , matchAListResolved ));
500500 }
501-
501+
502+ public void testMultiDimensionalGenericArrays () throws Exception
503+ {
504+ ResolvedType resolvedType = typeResolver .resolve (new GenericType <List <String >[][]>() { });
505+ assertEquals (List [][].class , resolvedType .getErasedType ());
506+ assertEquals (Collections .emptyList (), resolvedType .getTypeParameters ());
507+ assertTrue (resolvedType .isArray ());
508+ ResolvedArrayType arrayType = (ResolvedArrayType ) resolvedType ;
509+ ResolvedType inner1 = arrayType .getArrayElementType ();
510+ assertEquals (List [].class , inner1 .getErasedType ());
511+ assertTrue (inner1 .isArray ());
512+ ResolvedArrayType arrayType2 = (ResolvedArrayType ) inner1 ;
513+ ResolvedType inner2 = arrayType2 .getArrayElementType ();
514+ assertEquals (List .class , inner2 .getErasedType ());
515+ List <ResolvedType > inner2TypeParams = inner2 .getTypeParameters ();
516+ assertEquals (1 , inner2TypeParams .size ());
517+ assertEquals (String .class , inner2TypeParams .get (0 ).getErasedType ());
518+
519+ assertEquals ("java.util.List<java.lang.String>[][]" , resolvedType .toString ());
520+ }
521+
502522 /*
503523 /**********************************************************************
504524 /* Helper methods
0 commit comments