code: 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;
  	}
docs: /* @Nullable