Size: a a a

Kotlin Community

2020 February 11

QH

Quantum Harmonizer in Kotlin Community
Konstantin Dovnar
Почему все inline у функций IDEA подсвечивает как бяки? Даже саппресcа нет.
Есть саппресс.
источник

BV

Boris Vanin in Kotlin Community
Konstantin Dovnar
А под "их фичами" подразумевается?
Я думал сам инлайнинг функций уже фича:)
Неа
источник

KD

Konstantin Dovnar in Kotlin Community
Quantum Harmonizer
Есть саппресс.
Хм, студия не предлагает. Правда я давно ничего не обновлял.
источник

AL

Alexander Levin in Kotlin Community
Konstantin Dovnar
А под "их фичами" подразумевается?
Я думал сам инлайнинг функций уже фича:)
Обычный инлайнинг где уместно может сделаться сам без твоего участия (не Котлином уже правда)

Под фичами чаще всего подразумевается инлайнинг лямбд либо reified дженерики.
источник

BV

Boris Vanin in Kotlin Community
Да, можно засаппресить, но чаще всего лучше не делать инлайны, которые и не рефаед и лямбду не принимают для инлацнинга
источник

QH

Quantum Harmonizer in Kotlin Community
постоянно такие делаю)
источник

KD

Konstantin Dovnar in Kotlin Community
Хм. Мне казалось, что сделать какую-нибудь inline ext-fun для какого-нибудь класса вполне себе хорошая идея. Чтобы там не вызывалась функция, а обработалось на месте.
источник

LS

Leonid Startsev in Kotlin Community
JIT и так её заинлайнит, если она часто выполняется и маленькая
источник

KD

Konstantin Dovnar in Kotlin Community
Leonid Startsev
JIT и так её заинлайнит, если она часто выполняется и маленькая
Одно дело полагаться на компилятор (мб зная, что и где он заинлайнит), а другое самим явно сказать, чтобы что-то точно заинлайнилось. 🤔
источник

VP

Vladimir Petrakovich in Kotlin Community
Konstantin Dovnar
Хм. Мне казалось, что сделать какую-нибудь inline ext-fun для какого-нибудь класса вполне себе хорошая идея. Чтобы там не вызывалась функция, а обработалось на месте.
Лучше решение о том, инлайнить это или нет, оставить рантайму
источник

VP

Vladimir Petrakovich in Kotlin Community
Konstantin Dovnar
Одно дело полагаться на компилятор (мб зная, что и где он заинлайнит), а другое самим явно сказать, чтобы что-то точно заинлайнилось. 🤔
А зачем?
источник

AM

Andrew Mikhaylov in Kotlin Community
Особенно когда один из таргетов -- андроид, ART которого ничего не знает об инлайнинге, да.
источник

AM

Andrew Mikhaylov in Kotlin Community
Vladimir Petrakovich
А зачем?
А почему нет? Некоторые однострочные функции, которые заведены только для того, чтобы представить чуть иначе параметры, совершенно логично инлайном размечать.
источник

VP

Vladimir Petrakovich in Kotlin Community
Andrew Mikhaylov
Особенно когда один из таргетов -- андроид, ART которого ничего не знает об инлайнинге, да.
Так R8 инлайнит же тоже.
И я не верю, что ART не умеет это, когда надо.
источник

BP

Bogdan Panchenko in Kotlin Community
Konstantin Dovnar
Одно дело полагаться на компилятор (мб зная, что и где он заинлайнит), а другое самим явно сказать, чтобы что-то точно заинлайнилось. 🤔
для андроида глушить) для JVM не использовать инлайн где он не пригодится)
источник

VP

Vladimir Petrakovich in Kotlin Community
Andrew Mikhaylov
А почему нет? Некоторые однострочные функции, которые заведены только для того, чтобы представить чуть иначе параметры, совершенно логично инлайном размечать.
Так-то нет. В чем логичность?
источник

AM

Andrew Mikhaylov in Kotlin Community
R8 по своей воле что-то инлайнить умеет самостоятельно? @Harmonizr, ты в теме?
источник

BP

Bogdan Panchenko in Kotlin Community
Andrew Mikhaylov
А почему нет? Некоторые однострочные функции, которые заведены только для того, чтобы представить чуть иначе параметры, совершенно логично инлайном размечать.
джит такое на раз *оптимизирует, я понимаю что ты имеешь ввиду андроид, но вы должны уже привыкнуть к костылям и засаппресам 😅
источник

D

Denys in Kotlin Community
Andrew Mikhaylov
R8 по своей воле что-то инлайнить умеет самостоятельно? @Harmonizr, ты в теме?
Умеет
источник

D

Denys in Kotlin Community
На GIO 2019 был доклад
источник