Kotlin: Cómo trabajar con Cast de lista: Cast sin marcar: kotlin.collections.List <Kotlin.Any?> To kotlin.colletions.List <Waypoint>

Quiero escribir una función que devuelva cada elemento en unList ese no es el primer o el último elemento (un punto de paso). La función obtiene un genéricoList<*> como entrada Un resultado solo debe devolverse si los elementos de la lista son del tipoWaypoint:

fun getViaPoints(list: List<*>): List<Waypoint>? {

    list.forEach { if(it !is Waypoint ) return null }

    val waypointList = list as? List<Waypoint> ?: return null

    return waypointList.filter{ waypointList.indexOf(it) != 0 && waypointList.indexOf(it) != waypointList.lastIndex}
}

Al lanzar elList<*> aList<Waypoint>, Recibo la advertencia:

Reparto sin marcar: kotlin.collections.List to kotlin.colletions.List

De lo contrario, no puedo encontrar una manera de implementarlo. ¿Cuál es la forma correcta de implementar esta función sin esta advertencia?

Respuestas a la pregunta(2)

Su respuesta a la pregunta