Size: a a a

Kotlin Community

2019 December 24

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
У меня бывают проверки, но на интерфейсы, которые инлайн классы наследуют
ну при инлайне они тоже мимо
источник

BP

Bogdan Panchenko in Kotlin Community
блин может ввести type который всегда инлайнится
источник

AM

Andrew Mikhaylov in Kotlin Community
Ну кстати с инлайнами для мультиплатформы, которые я себе представляю, как раз не помешал бы is WrappedValueOfInlineClass :)
источник

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
блин может ввести type который всегда инлайнится
Ну как я понял, что -то такое и хотят
источник

BP

Bogdan Panchenko in Kotlin Community
Andrew Mikhaylov
Ну кстати с инлайнами для мультиплатформы, которые я себе представляю, как раз не помешал бы is WrappedValueOfInlineClass :)
вот пошли извращенцы
источник

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
вот пошли извращенцы
Ну я проверка на то, что это нужный интерфейс все-таки нужна. Правда в основном для оптимизации чего-нибудь
источник

AN

Alexander Nozik in Kotlin Community
Вообще, инлайны как инлайны так себе работают. Очень сложно придумать хоть сколько-нибудь сложную конструкацию, где они не боксятся
источник

AM

Andrew Mikhaylov in Kotlin Community
Bogdan Panchenko
вот пошли извращенцы
Дык чего извращенцы? В текущем виде обычно пишется экспект, повторяющий интерфейс класса с одной платформы, и экшуал тайпалиас на ней плюс экшуал классы-врапперы на остальные. В итоге везде будет безусловный боксинг. А так можно было бы иметь один экспект-тип, который прозрачно вёл бы себя на разных платформах, и инлайн-адаптеры, которые бы целиком стирались в рантайме.
источник

BP

Bogdan Panchenko in Kotlin Community
Andrew Mikhaylov
Ну кстати с инлайнами для мультиплатформы, которые я себе представляю, как раз не помешал бы is WrappedValueOfInlineClass :)
в теории можно слелать специальный оператор-валидатор который будет обрабатывать примитивы на соотвецтвия инлайн классу и возложить это на пользователя, нк или сделать минималтную реализацию покмолчанию
источник

AM

Andrew Mikhaylov in Kotlin Community
Дык это не только про примитивы. На скринах выше пример с датами, к примеру.
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
Вообще, инлайны как инлайны так себе работают. Очень сложно придумать хоть сколько-нибудь сложную конструкацию, где они не боксятся
+почти от них отказался, да еще серилизация не работает
источник

BP

Bogdan Panchenko in Kotlin Community
Andrew Mikhaylov
Дык это не только про примитивы. На скринах выше пример с датами, к примеру.
ну по примитивами я понимаю value которое содержится в инлайн классе
источник

AM

Andrew Mikhaylov in Kotlin Community
А, окей
источник

BP

Bogdan Panchenko in Kotlin Community
Andrew Mikhaylov
Дык чего извращенцы? В текущем виде обычно пишется экспект, повторяющий интерфейс класса с одной платформы, и экшуал тайпалиас на ней плюс экшуал классы-врапперы на остальные. В итоге везде будет безусловный боксинг. А так можно было бы иметь один экспект-тип, который прозрачно вёл бы себя на разных платформах, и инлайн-адаптеры, которые бы целиком стирались в рантайме.
немного не понял, и как такого достичь?
источник

AM

Andrew Mikhaylov in Kotlin Community
Bogdan Panchenko
немного не понял, и как такого достичь?
Так же, как и сейчас они работают. А что не так?
источник

AM

Andrew Mikhaylov in Kotlin Community
По месту вызова методов инлайн-класса подставляются вызовы статических методов с первым параметром, принимающим врапнутое значение.
источник

AM

Andrew Mikhaylov in Kotlin Community
В качестве инстанса везде таскать тоже врапнутый тип.
источник

BP

Bogdan Panchenko in Kotlin Community
Andrew Mikhaylov
Так же, как и сейчас они работают. А что не так?
ну я про проаерку на is Class, как ее слелать без бокса? или  вместо  is InlineClass,  компилятор на платформе будет вставлять is PrimitiveClass ?
источник

AM

Andrew Mikhaylov in Kotlin Community
В вышеуказанном случае различать мультиплатформенный экспект для даты и NSDate смысла никакого нет.
источник

AM

Andrew Mikhaylov in Kotlin Community
Bogdan Panchenko
ну я про проаерку на is Class, как ее слелать без бокса? или  вместо  is InlineClass,  компилятор на платформе будет вставлять is PrimitiveClass ?
Ну да
источник