Size: a a a

Kotlin Community

2020 March 19

nt

nikita tukkel in Kotlin Community
да, каст в assertEquals у меня там лишний.
смысл примера в демонстрации неочевидности получающегося кода.
т.е. две ветки кода внутри лямбды, одна всегда срабатывает и кидает исключение, а другая никогда не срабатывает, но именно из нее выводится тип. а дальше представь, что это не юнит-тест из 5 строк, где все видно, а код использования какого-нибудь фреймворка, где все это будет глубоко закопано.
источник

AO

Alexey Otts in Kotlin Community
Может кто сталкивался, можно ли както рефлексией понять что тип нулябельный?
myReflection<Foo<String?>> //вот тут хочется понять что этот String nullable

Попробовал старый добрый подход через TypeReference, там не нашёл откуда дотсать эту инфу, попробовал у этого анонимного типа дёрнуть метадату, но там вообще какая то дичь хранится
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexey Otts
Может кто сталкивался, можно ли както рефлексией понять что тип нулябельный?
myReflection<Foo<String?>> //вот тут хочется понять что этот String nullable

Попробовал старый добрый подход через TypeReference, там не нашёл откуда дотсать эту инфу, попробовал у этого анонимного типа дёрнуть метадату, но там вообще какая то дичь хранится
А typeOf завезли уже?
источник

RI

Ruslan Ibragimov in Kotlin Community
Alexey Otts
Может кто сталкивался, можно ли както рефлексией понять что тип нулябельный?
myReflection<Foo<String?>> //вот тут хочется понять что этот String nullable

Попробовал старый добрый подход через TypeReference, там не нашёл откуда дотсать эту инфу, попробовал у этого анонимного типа дёрнуть метадату, но там вообще какая то дичь хранится
typeOf и дальше уже по нему лезть
источник

AN

Alexander Nozik in Kotlin Community
Сейчас будет вебинар по летним практикам от JB... сегодня уже не поработаю...
источник

RI

Ruslan Ibragimov in Kotlin Community
Ruslan Ibragimov
typeOf и дальше уже по нему лезть
TypeReference насколько я понимаю даст Type, а нужен KType
источник

AO

Alexey Otts in Kotlin Community
Ruslan Ibragimov
typeOf и дальше уже по нему лезть
источник

AO

Alexey Otts in Kotlin Community
Видимо надо исходники их покопать
источник

RI

Ruslan Ibragimov in Kotlin Community
-Xopt-in=...
источник

RI

Ruslan Ibragimov in Kotlin Community
Там компилятор всю магию делает, на рантайме тип уже готовый лежит
источник

AO

Alexey Otts in Kotlin Community
Да эт понятно, просто нехочется тащить experimental в либу
источник

AO

Alexey Otts in Kotlin Community
fuuuuuu
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexey Otts
Да эт понятно, просто нехочется тащить experimental в либу
Снаружи никто и не увидит 😏
источник

RI

Ruslan Ibragimov in Kotlin Community
Vladimir Petrakovich
Снаружи никто и не увидит 😏
Я подозреваю оно транзитивно будет требовать -Xopt-in, хотя может если проставляешь как флаг компилятора то нет
источник

RI

Ruslan Ibragimov in Kotlin Community
У меня есть либа с этим, могу прочекать
источник

VP

Vladimir Petrakovich in Kotlin Community
Ruslan Ibragimov
Я подозреваю оно транзитивно будет требовать -Xopt-in, хотя может если проставляешь как флаг компилятора то нет
Не, это если только помечать свой API как opt-in
источник

VP

Vladimir Petrakovich in Kotlin Community
Насколько я знаю 🤔
источник

AO

Alexey Otts in Kotlin Community
Оно просто в user api просачивается получается
источник

RI

Ruslan Ibragimov in Kotlin Community
Сейчас узнаем
источник

AO

Alexey Otts in Kotlin Community
Эх вот если бы компилятор нормальную метадату там генерил
источник