Size: a a a

Kotlin Community

2020 March 19

RI

Ruslan Ibragimov in Kotlin Community
Все ок
источник

RI

Ruslan Ibragimov in Kotlin Community
Транзитивно не притягивается OptIn
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexey Otts
Эх вот если бы компилятор нормальную метадату там генерил
По мне так лучше opt-in подключить, чем в метаданных ковыряться. Но вообще это должно быть покрыто kotlin-reflect.
источник

RI

Ruslan Ibragimov in Kotlin Community
Какая метадата будет у инлайн функции?)
источник

RI

Ruslan Ibragimov in Kotlin Community
И какая у не инлайн
источник

AO

Alexey Otts in Kotlin Community
Ruslan Ibragimov
Транзитивно не притягивается OptIn
👌
источник

VP

Vladimir Petrakovich in Kotlin Community
Вот тут точно должна быть возможность вытащить тип с помощью kotlin-reflect
inline fun <reified T> blabla() {
   val ref = object : TypeReference<T> { }
   ...
}
источник

RI

Ruslan Ibragimov in Kotlin Community
Vladimir Petrakovich
Вот тут точно должна быть возможность вытащить тип с помощью kotlin-reflect
inline fun <reified T> blabla() {
   val ref = object : TypeReference<T> { }
   ...
}
И ты подписался на kotlin-reflect
источник

RI

Ruslan Ibragimov in Kotlin Community
typeOf работает без него
источник

VP

Vladimir Petrakovich in Kotlin Community
Ruslan Ibragimov
typeOf работает без него
Ну да, я в курсе, я к тому, что руками в метадату точно не должна быть необходимость лезть
источник

VP

Vladimir Petrakovich in Kotlin Community
Чтобы её распарсить, надо всё равно кусок reflect тащить
источник

RI

Ruslan Ibragimov in Kotlin Community
Кстати я тут недавно хотел klaxon ускорить, а то стыдно что он на последних местах в бенчмарках, так оказалось что там одна из проблем за которую не хочется браться это как раз kotlin-reflection https://github.com/cbeust/klaxon/issues/291
источник

RI

Ruslan Ibragimov in Kotlin Community
Vladimir Petrakovich
Вот тут точно должна быть возможность вытащить тип с помощью kotlin-reflect
inline fun <reified T> blabla() {
   val ref = object : TypeReference<T> { }
   ...
}
Точно так получится KType достать?
источник

RI

Ruslan Ibragimov in Kotlin Community
https://gist.github.com/udalov/bb6f398c2e643ee69586356fdd67e9b1 быстрый гуглеж показывает что не все так просто, а еще что тут скорее всего теряется информация о nullability
источник

AO

Alexey Otts in Kotlin Community
Vladimir Petrakovich
Вот тут точно должна быть возможность вытащить тип с помощью kotlin-reflect
inline fun <reified T> blabla() {
   val ref = object : TypeReference<T> { }
   ...
}
Ну её увы нет
источник

BP

Bogdan Panchenko in Kotlin Community
его все равно завезут
источник

AM

Andrew Mikhaylov in Kotlin Community
Кстати да, ну поменяют немного апи -- выпустишь новую версию либы для новой версии языка, в чём проблема-то
источник

BP

Bogdan Panchenko in Kotlin Community
Ruslan Ibragimov
typeOf работает без него
а   KType  не весь
источник

AM

Andrew Mikhaylov in Kotlin Community
Andrew Mikhaylov
Кстати да, ну поменяют немного апи -- выпустишь новую версию либы для новой версии языка, в чём проблема-то
kotlinx все так живут.
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
Вот тут точно должна быть возможность вытащить тип с помощью kotlin-reflect
inline fun <reified T> blabla() {
   val ref = object : TypeReference<T> { }
   ...
}
(нет) только если сделать булевое поле тип    val isNullable = T !is Any
источник