Método de referencias a tipos sin procesar perjudiciales?

El siguiente código contiene una referencia aEnum::name (Aviso sin parámetro de tipo).

public static <T extends Enum<T>> ColumnType<T, String> enumColumn(Class<T> klazz) {
    return simpleColumn((row, label) -> valueOf(klazz, row.getString(label)), Enum::name);
}

public static <T, R> ColumnType<T, R> simpleColumn(BiFunction<JsonObject, String, T> readFromJson,
        Function<T, R> writeToDb) {
 // ...
}

Javac informa una advertencia durante la compilación:

[ADVERTENCIA] encontró el tipo sin formato: java.lang.Enum faltan argumentos de tipo para la clase genérica java.lang.Enum

Cambiar la expresión aEnum<T>::name hace que la advertencia desaparezca.

Sin embargo, Idea marca elEnum<T>::name versión con una advertencia de que:

Se pueden inferir argumentos de tipo explícito

A su vez, Eclipse (ECJ) no informa ningún problema con ninguna de las formulaciones.

¿Cuál de los tres enfoques es correcto?

Por un lado, los tipos crudos son bastante desagradables. Si intenta poner algún otro tipo de argumento, p.Enum<Clause>::name hará que la compilación falle, por lo que es una protección adicional.

Por otro lado, la referencia anterior es equivalente ae -> e.name() lambda, y esta formulación no requiere argumentos de tipo.

Ambiente:

Java 8u91IDEA 15.0.3 ComunidadECJ 4.5.2

Respuestas a la pregunta(1)

Su respuesta a la pregunta