Size: a a a

Kotlin Community

2020 March 12

D

Denys in Kotlin Community
источник

AN

Alexander Nozik in Kotlin Community
e: org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Serializer for element of type Nothing has not been found.
To use context serializer as fallback, explicitly annotate element with @ContextualSerialization
File is unknown

Как понять, откуда эта зараз прилетает?
источник

RE

Roman Elizarov in Kotlin Community
It is likely that type inteference had infererred Nothing type for some variable in a class.
источник

AN

Alexander Nozik in Kotlin Community
Roman Elizarov
It is likely that type inteference had infererred Nothing type for some variable in a class.
Я прочитал. Но единственное место, где у меня есть дженерики я проверил, там все нормально
источник

AN

Alexander Nozik in Kotlin Community
Просто у меня много кастомных сериализаторов в модуле. Без указания, на какой именно идет ругань, сложно понять, чего чинить
источник

AN

Alexander Nozik in Kotlin Community
Поотключал уже все или почти все, все равно падает :(
источник

AN

Alexander Nozik in Kotlin Community
Roman Elizarov
It is likely that type inteference had infererred Nothing type for some variable in a class.
Вроде нашел. У меня рекурсивная структура, я там вроде затираю дженерик, поэтому полиморфизма быть не должно, но плагин по-видимому все-таки пытается его вывести и ломается.
источник

AN

Alexander Nozik in Kotlin Community
Чьерт, нашел. Мой косяк:
    @Serializable
   data class ValueItem( @Serializable(ValueSerializer::class) val value: Value) : MetaItem<Nothing>() {
       override fun toString(): String = value.toString()
   }

Видимо упадутие как раз на вот этот Nothing. Вообще, это в каком-то смысле косяк полиморфного дескриптора.
источник

AL

Anton Lakotka in Kotlin Community
Alexander Nozik
e: org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Serializer for element of type Nothing has not been found.
To use context serializer as fallback, explicitly annotate element with @ContextualSerialization
File is unknown

Как понять, откуда эта зараз прилетает?
в новом сериализаторе вроде работает с Nothing
в предыдущем, я писал кастомный сериализатор, который ничего не сериализовывал.
data class Foo(val bar: String) : MetaItem<@NoSerialization Nothing>
источник

AN

Alexander Nozik in Kotlin Community
Anton Lakotka
в новом сериализаторе вроде работает с Nothing
в предыдущем, я писал кастомный сериализатор, который ничего не сериализовывал.
data class Foo(val bar: String) : MetaItem<@NoSerialization Nothing>
У меня как раз новый. На старом все работало. Видимо какая-то комбинация рекурсии и полиморфизма.
источник

AL

Anton Lakotka in Kotlin Community
🤔 действительно, странно.
источник

AN

Alexander Nozik in Kotlin Community
Сейчас попробую кастомные сериализаторы сделать, посмотрю, работает или нет
источник

AN

Alexander Nozik in Kotlin Community
Собралось после того, как я для силеда все сериализаторы вручную прописал
источник

AL

Anton Lakotka in Kotlin Community
теперь у меня так работает. раньше нужно было для Nothing  явно указать сериализатор.
источник

AN

Alexander Nozik in Kotlin Community
Anton Lakotka
теперь у меня так работает. раньше нужно было для Nothing  явно указать сериализатор.
У меня дерево по-другому организовано, оно не left-right, а с одним дженериком. Листочки всегда Nothing
источник

AN

Alexander Nozik in Kotlin Community
Нашел одну небольшую проблему, но нет времени писать issue. Кастомный сериализатор пишется в компаньен. Это хорошо, но если в компаньене есть что-то еще кроме сериализатора, то его нельзя использовать из зависимого модуля если не подключить рантайм сериализации (если в исходном модуле он идет как implementation). Это экзотический кейс, разумеется.
источник

AM

Andrew Mikhaylov in Kotlin Community
Я ж говорил, что кто-то обязательно затянет поделку Вартона и будет пользоваться по поводу и без.
источник

AM

Andrew Mikhaylov in Kotlin Community
string.toMutableList().unsafeCast<MutableList<Char?>>()
источник

VP

Vladimir Petrakovich in Kotlin Community
Andrew Mikhaylov
string.toMutableList().unsafeCast<MutableList<Char?>>()
P - performance
источник

BV

Boris Vanin in Kotlin Community
Andrew Mikhaylov
string.toMutableList().unsafeCast<MutableList<Char?>>()
Мне кажется, доступ к таким плагинами должен выдаваться после прохождения теста
источник