Example #1
0
 /* @Nullable */
 private ArrayTypeReference doTryConvertToArray(
     ParameterizedTypeReference typeReference, RecursionGuard<JvmTypeParameter> recursionGuard) {
   JvmType type = typeReference.getType();
   if (recursionGuard.tryNext((JvmTypeParameter) type)) {
     List<LightweightTypeReference> superTypes = typeReference.getSuperTypes();
     for (int i = 0, size = superTypes.size(); i < size; i++) {
       LightweightTypeReference superType = superTypes.get(i);
       if (superType.isArray()) {
         return (ArrayTypeReference) superType;
       }
       ArrayTypeReference result = doTryConvertToArray(typeReference);
       if (result != null) {
         return result;
       } else {
         JvmType rawSuperType = superType.getType();
         if (rawSuperType != null
             && rawSuperType.eClass() == TypesPackage.Literals.JVM_TYPE_PARAMETER) {
           result = doTryConvertToArray((ParameterizedTypeReference) superType, recursionGuard);
           if (result != null) return result;
         }
       }
     }
   }
   return null;
 }
Example #2
0
 /* @Nullable */
 public ArrayTypeReference tryConvertToArray(ParameterizedTypeReference typeReference) {
   ArrayTypeReference result = doTryConvertToArray(typeReference);
   if (result != null) {
     return result;
   } else {
     JvmType type = typeReference.getType();
     if (type.eClass() == TypesPackage.Literals.JVM_TYPE_PARAMETER) {
       return doTryConvertToArray(typeReference, new RecursionGuard<JvmTypeParameter>());
     }
   }
   return null;
 }