// KSerializer in my actual env
open class A<T>
// An external class from lib
class B<T>
// My serializer
class C : A<B<Int>>()
// A map to take correct serializer by arg
val c: Map<Int, () -> A<out B<*>>> = mapOf(0 to { C() })
// CompositeEncoder#encodeSerializableElement in my actual env
fun <U, T : A<U>> a(a: T, b: U) {
}
// KSerializer#serialize(encoder: Encoder, value: B<*>) in my actual env
fun b(b: B<*>) {
a(c[0]!!(), b)
}
Error
Copy code
Type mismatch.
Required:
CapturedType(out B*>)
Found:
B<*>