@kotlin_lang

Страница 190 из 982
Quantum Harmonizer
14.06.2017
19:17:13
Для nullable в качестве in отрабатывает Iterable<T>.contains(element: T).

Dmitriy
14.06.2017
19:19:11
Тогда надо гредл консоль глянуть. Мб что скажет
gradle clean build сработал на 5+. проблема наблюдается после повторного debug

Anton
14.06.2017
19:19:38
а что за ошибка то?

Google
Dmitriy
14.06.2017
19:19:42
в общем, пока посижу на котлин 1.1.1

Anton
14.06.2017
19:19:47
после ребилда компоненты пропадают?

Dmitriy
14.06.2017
19:19:52
ошибка - не находит daggercomponent классы

да

Anton
14.06.2017
19:19:54
ага

Dmitriy
14.06.2017
19:22:19
ага
знаменитая проблема? ) знаете как решить?

Anton
14.06.2017
19:22:30
нет я уже неделю не могу решить свою

у меня было тоже самое но оказалось ошибка у меня была в коде

там логи нихрена не показывают

ну по сути у меня щас тоже есть ошибка такая как у вас но она сопровождается еще нескольким варнингами

еще там бывает циркуляр депенденси

Dmitriy
14.06.2017
19:23:49
я так понял, проблема перед монитором сидит )

Михаил
14.06.2017
19:23:50
Поставь еап)

Google
Dmitriy
14.06.2017
19:23:58
ладно, посижу пока на 1.1.1

Михаил
14.06.2017
19:24:06
Она норм работает

Ivan
14.06.2017
19:24:07
Для nullable в качестве in отрабатывает Iterable<T>.contains(element: T).
оммм... а где ты смотришь? Я вот сделал в идее показать байткод и дальше декомпайл получились следующие 2 метода: public final boolean pointInsideRangeWithCheck(@Nullable Integer point) { return point != null?(new IntRange(this.start, this.end)).contains(point.intValue()):false; } public final boolean pointInsideRange(@Nullable Integer point) { return CollectionsKt.contains((Iterable)(new IntRange(this.start, this.end)), point); }

Dmitriy
14.06.2017
19:24:08
eap рулит ) мне очень новая идея понравилась

Поставь еап)
дома поставил, на работе атата

Quantum Harmonizer
14.06.2017
19:24:44
дома поставил, на работе атата
хех) и дома, и на работе eap :)

Dmitriy
14.06.2017
19:25:01
у меня руки не из того места )

Ivan
14.06.2017
19:25:17
ну да, я про то же

просто пока получается что INVOKESTATIC kotlin/collections/CollectionsKt.contains (Ljava/lang/Iterable;Ljava/lang/Object;)Z медленнее работает чем INVOKEVIRTUAL kotlin/ranges/IntRange.contains (I)Z

так не, я про инринзик в kotlinc, у меня по байт-коду всё видно.
интринзик получается для fun pointInsideComparisonWithCheck(point: Int?): Boolean { if (point != null) { return start <= point && point <= end } else { return false } } public final boolean pointInsideComparisonWithCheck(@Nullable Integer point) { return point == null?false:Intrinsics.compare(this.start, point.intValue()) <= 0 && point.intValue() <= this.end; }

Михаил
14.06.2017
19:29:00
Короч реал скоро будет оптимизации на джаве писать)

Ivan
14.06.2017
19:30:12
но видимо для IntRange.contains срабатывает ещё какая-то оптимизация которая сводит её к Intrinsics.compare

Михаил
14.06.2017
19:30:15
https://youtu.be/_-I5Wc68hB4

Quantum Harmonizer
14.06.2017
19:30:31
Ivan
14.06.2017
19:31:26
https://youtu.be/_-I5Wc68hB4
тут уже было про эти ренжи?

Михаил
14.06.2017
19:32:05
Нет. Но тут в принципе о том какой байткод генерит конлитц

Ivan
14.06.2017
19:33:12
ага, спасибо за доклад, посмотрю обязательно

Завести багу или ты заведёшь?
короче да, надо багу завести, может авторы что-нибудь нам скажут

Alexander
14.06.2017
19:35:11
Google
Ivan
14.06.2017
19:35:55
Невозможно
ну нет ничего в мире невозможноного) но да, меня тоже это смутило

Quantum Harmonizer
14.06.2017
19:37:40
Невозможно
Что невозможного? Что обойти весь итерабл — дольше, чем выполнить два сравнения?

Alexander
14.06.2017
19:38:51
Invokestatic не может быть медленнее invokedynamic. А на код вызова я сначала не посмотрел

Quantum Harmonizer
14.06.2017
19:40:12
Invokestatic не может быть медленнее invokedynamic. А на код вызова я сначала не посмотрел
Оверхед на вызов — не может, а тело метода — вполне. И, да, invokevirtual.

https://youtu.be/_-I5Wc68hB4
нафига кроссинлайн? https://youtu.be/_-I5Wc68hB4?t=19m47s

Михаил
14.06.2017
19:51:49
@smred ?)

Quantum Harmonizer
14.06.2017
19:53:47
И меняет ли что-то повсеместный reified?

Михаил
14.06.2017
19:54:44
reified быстрее будет работать

Quantum Harmonizer
14.06.2017
19:55:16
reified быстрее будет работать
ок, буду смотреть байт-код

«здесь я написал for, если вы посмотрите, как это транслируется в байт-код, тут будет while» В байт-коде нет ни for, ни while.

Axrorxo'ja
14.06.2017
19:56:54
ок, буду смотреть байт-код
через какой плагин вы смотрите байт код

Quantum Harmonizer
14.06.2017
19:57:11
Axrorxo'ja
14.06.2017
19:57:56
Ivan
14.06.2017
20:23:19
в общем как-то так

https://youtrack.jetbrains.com/issue/KT-18483

Dmitry
14.06.2017
20:35:50
надо как-нибдуь импрув навести на цвет аннотаций в даркуле

Volodymyr
14.06.2017
20:40:37
всем привет. у меня у одного даггер валится при kotlin version > 1.1.1? пробовал котлин 1.1.2-5, gradle 2.3.3
//Dagger kapt "com.google.dagger:dagger-compiler:${libs.dagger}" compile "com.google.dagger:dagger:${libs.dagger}" provided 'org.glassfish:javax.annotation:10.0-b28'

Google
Admin
ERROR: S client not available

Volodymyr
14.06.2017
20:42:43
dagger : "2.7",

на stackowerflow этот вопрос уже решен

Михаил
14.06.2017
20:57:25
а должны ли вообще работать конструкторы с дефолтными параметрами для джавы?

там под капотом же несколько конструкторов должно генерится?

Антон
14.06.2017
20:59:35
Если поставишь аннотацию @JvmStatic у конструктора

Михаил
14.06.2017
21:00:16
really?

у конструктора статик?

шта

@JvmOverloads

но все равно спасибо, вспомнил что такая есть

Антон
14.06.2017
21:03:29
Сорян, перепутал

Ivan
14.06.2017
21:21:32
https://youtu.be/_-I5Wc68hB4
а, блин, андроид же, для тех кто пишет под нормальную jvm не актуально же

Ivan
14.06.2017
21:35:04
ну геттеры-то jit нормально оптимизирует

Alexander
14.06.2017
22:40:21
«здесь я написал for, если вы посмотрите, как это транслируется в байт-код, тут будет while» В байт-коде нет ни for, ни while.
да, как вы можете увидеть на слайде имелось ввиду если декомпилировать код обратно в java то будет разворот

@smred ?)
захват только локального скоупа = выше перфоманс

а, блин, андроид же, для тех кто пишет под нормальную jvm не актуально же
процентов 25% специфичных андроиду, остальное для всех

Google
Alexander
14.06.2017
22:45:33
Кстати, для дам и господ из Санкт-Петербурга будет интересно послушать про устройство и использование корутин в Kotlin 24 июня на Mosdroid. Подробности по ссылкам ниже

В Москве идут дожди, поэтому #Mosdroid едет в Питер c #meetup. 24 июня вас ждут классные доклады – http://bit.ly/2ruRjj6 В этот раз регистрация на сайте владельцев площадки – http://bit.ly/2raBnTP А если вам интересны наши дальнейшие встречи, то рекомендую оставить RSVP в нашей основной группе – http://bit.ly/2s5Vxj4

? animufag ?
14.06.2017
23:06:15
завтра кстати будет ивент в jb

на который к сожелению не пойду

Dmitry
15.06.2017
07:18:17
Всем привет! Вопрос насчет сортировки collections. Допустим, у меня есть датакласс data class Person(val name: String, val age: Int){ override fun toString(): String { return "\n" + name + " " + age } } , и я его сортирую по именам fun sortedByNames(val persons: ArrayList<Person>) = persons.sortBy {it.name} Такая сортировка работает, но что, если у меня чуть усложнится задача - надо определенные имена из сортированного списка поместить в его начало. Какой вариант решения подойдет в этом случае?

Quantum Harmonizer
15.06.2017
07:44:06
reified быстрее будет работать
Чёт не могу понять, в каком это случае он будет быстрее. ?

захват только локального скоупа = выше перфоманс
Можно подробнее? И причём здесь кроссинлайн?

Страница 190 из 982