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

Dmitriy
14.06.2017
19:19:11

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

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

Quantum Harmonizer
14.06.2017
19:25:02


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

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

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

Alexander
14.06.2017
19:35:11

Google

Alexander
14.06.2017
19:35:21

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

Михаил
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
«здесь я написал 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

Dmitriy
14.06.2017
20:42:08

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
Сорян, перепутал

Quantum Harmonizer
14.06.2017
21:13:37
они синтетические

Ivan
14.06.2017
21:21:32

Quantum Harmonizer
14.06.2017
21:34:42

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

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

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}
Такая сортировка работает, но что, если у меня чуть усложнится задача - надо определенные имена из сортированного списка поместить в его начало. Какой вариант решения подойдет в этом случае?

Pavel Shackih
15.06.2017
07:24:25

Quantum Harmonizer
15.06.2017
07:44:06

Nikita
15.06.2017
07:47:00