Luiz Aguiar
05/04/2019, 5:23 PMsealed class MySealed {
data class A(val value: String) : MySealed()
data class B(val value: String) : MySealed()
}
fun reactor() {
val result: Mono<MySealed> = Mono.just("bla")
.map { MySealed.A(value = "A") }
.onErrorResume { Mono.just(MySealed.B("B")) }
// Compilation ERROR
// map -> Type mismatch: inferred type is Mono<MySealed.A!> but Mono<MySealed> was expected
// onErrorResume -> Type inference failed. Expected type mismatch: inferred type is Mono<MySealed.B!> but Mono<out MySealed.A!>! was expected
}
If a just use any other class type (data class, enum, etc), it works.