code: private ArrayTypeReference doTryConvertToArray(ParameterizedTypeReference typeReference) {
  		LightweightTypeReference parameterizedIterable = typeReference.getSuperType(Iterable.class);
  		if (parameterizedIterable != null) {
  			ITypeReferenceOwner owner = typeReference.getOwner();
  			if (parameterizedIterable.isRawType()) {
  				// return Object[]
  				List<LightweightTypeReference> superTypes = parameterizedIterable.getSuperTypes();
  				if (superTypes.isEmpty()) {
  					return null;
  				}
  				LightweightTypeReference objectType = superTypes.get(0);
  				ArrayTypeReference array = owner.newArrayTypeReference(objectType);
  				return array;
  			} else {
  				LightweightTypeReference componentType = parameterizedIterable.getTypeArguments().get(0).getUpperBoundSubstitute();
  				ArrayTypeReference array = owner.newArrayTypeReference(componentType);
  				return array;
  			}
  		}
  		return null;
  	}
docs: /* @Nullable