Отказ от ответственности: Этот ответ основан на Kotlin 1.2.71.Если вы не можете воспроизвести описанное поведение, пожалуйста, проверьте свою версию Kotlin (плагина).
Как было отмечено в комментариях и ответе Лиора Барона, предполагаемый тип для val a = listOf('A', Pair('X', 'Y'))
равенList<Serializable>
.
Странно то, что если вы позволите Kotlin определить тип, вы не сможете скомпилировать:
val a = listOf('A', Pair('X', 'Y'))
println(a[0] == 'B')
, но если указать тип явно:
val a = listOf<Serializable>('A', Pair('X', 'Y'))
так и будет.Это не будет работать на игровой площадке Kotlin ( try.kotlinlang.org ), давая:
Ошибка: невозможно получить доступ к «Сериализуемому»: это внутреннее в «kotlin.io»
но если вы компилируете его локально.Это должно быть подано как ошибка.