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