https://kotlinlang.org logo
#server
Title
l

Luiz Aguiar

05/04/2019, 5:23 PM
Hi folks 👋
Copy code
sealed 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.