Cómo upload el valor de retorno de un constructor

Quiero arreglar un error de comstackdor de discrepancia de tipo que obtengo del siguiente código, donde la inferencia de tipo no está haciendo lo que quiero. Tengo una class sellada y una transmisión rxjava:

sealed class Result { data class Success(val logs: List<Log>) : Result() data class Failure(val throwable: Throwable) : Result() object InFlight : Result() } val logs: Observable<List<Log>> = getLogs() logs.map(Result::Success) .onErrorReturn(Result::Failure) 

Tipo no coincidente: tipo inferido es KFunction1 <@ParameterName Throwable, Result.Failure> pero Function! era de esperarse

Puedo solucionar el error especificando explícitamente el tipo de devolución de la function del asignador, que es una especie de upcasting del tipo inferido Result.Success to Result manera:

  logs.map({ logs -> Result.Success(logs) as Result }) 

Pero me preguntaba si este upcasting es posible con una reference de function de constructor, algo así como Result::Success as Result