Size: a a a

Kotlin Community

2020 August 13

AH

Ayrat Hudaygulov in Kotlin Community
тайп-класс тут поможет тем что если ты подключишь библу где есть инстанс kotlinx.serializator для типа А, ты можешь им сразу пользоваться
источник

AN

Alexander Nozik in Kotlin Community
Alexander Levin
Так никому тайпклассы без подстановки тайпклассов нахрен не сдались :D
Спорный вопрос. Вот то, что хотел @commandertvis делается без имплиситов. Я больше скажу, его не сделаешь с имплиситами, потому что там по типу контекст нельзя однозначно разрешить.
источник

AH

Ayrat Hudaygulov in Kotlin Community
Alexander Levin
Так никому тайпклассы без подстановки тайпклассов нахрен не сдались :D
согласен, но это про другое

например я хочу сделать java.nio.Stream Iterable чтобы пользоваться на нём полным функционалом всех map, flatMap и прочего из котлин либы

я пишу тайпкласс
object extension Stream<T> with  Iterable<T> {
 …
}
и теперь все кто импортируют данный скоуп должны иметь возможность делать

someStream
 .map { … }
 .filter { … }
и пр
источник

AH

Ayrat Hudaygulov in Kotlin Community
то есть тут неявно берётся реализация Iterable для Steram из инстанса тайп класса.
источник

AN

Alexander Nozik in Kotlin Community
Alexander Nozik
Спорный вопрос. Вот то, что хотел @commandertvis делается без имплиситов. Я больше скажу, его не сделаешь с имплиситами, потому что там по типу контекст нельзя однозначно разрешить.
он правда HKT хотел, я опять попутал. Это разные штуки
источник

AL

Alexander Levin in Kotlin Community
Ayrat Hudaygulov
то есть тут неявно берётся реализация Iterable для Steram из инстанса тайп класса.
Ну всмысле вы просто предложили выкинуть все правила ресолвинга, кроме наличия в импорте. Ну тип окей, всё лучше чем руками передавать.
источник

AN

Alexander Nozik in Kotlin Community
Alexander Levin
Ну всмысле вы просто предложили выкинуть все правила ресолвинга, кроме наличия в импорте. Ну тип окей, всё лучше чем руками передавать.
Это как раз то, что сейчас в KEEP-87 и это как раз перекрывается тем, что я написал выше.
источник

AH

Ayrat Hudaygulov in Kotlin Community
Alexander Levin
Ну всмысле вы просто предложили выкинуть все правила ресолвинга, кроме наличия в импорте. Ну тип окей, всё лучше чем руками передавать.
в скале немного маразм с резолвом имплиситов. Надо PhD получать
источник

AH

Ayrat Hudaygulov in Kotlin Community
Alexander Nozik
Это как раз то, что сейчас в KEEP-87 и это как раз перекрывается тем, что я написал выше.
ну этого вполне достаточно чтобы называть реализацию тайп-классами, имхо.
источник

IO

Iaroslav Orlov in Kotlin Community
Ayrat Hudaygulov
в скале немного маразм с резолвом имплиситов. Надо PhD получать
толковый аспирант тоже потянет, я думаю
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
толковый аспирант тоже потянет, я думаю
Толковый аспирант - сокровище.
источник

AL

Alexander Levin in Kotlin Community
Iaroslav Orlov
толковый аспирант тоже потянет, я думаю
Толковый интерн/джун тоже потянет.
источник

AL

Alexander Levin in Kotlin Community
Alexander Nozik
Это как раз то, что сейчас в KEEP-87 и это как раз перекрывается тем, что я написал выше.
1. Arguments of the caller function.
2. Companion object for the target type (User).
3. Companion object for the constraint interface we're looking for (Repository).
4. Subpackages of the package where the target type (User) to resolve is defined, **under the same gradle module**. The extension needs to be marked as `internal`.
5. Subpackages of the package where the constraint interface (Repository) is defined, **under the same gradle module**. The extension needs to be marked as `internal`.


Про импорты ничего не вижу.
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Это как раз то, что сейчас в KEEP-87 и это как раз перекрывается тем, что я написал выше.
над ним ещё будут работать ? ему уже 3 года
источник

AL

Alexander Levin in Kotlin Community
саша сок #KotlinGang
над ним ещё будут работать ? ему уже 3 года
Ну на докладах они упоминают ещё этот кип. Т.е. выглядит, что они сместили фокус с "пытаться пропушить жёстко в язык" до "докинуть возможность подключать функционал компиляторными плагинами", но про эти плагины в том числе была речь, что с помощью них просто можно что-то добавить в язык и посмотреть как будет выглядеть, чтобы было проще понять, нужно ли оно непосредственно в языке или нет.
источник

AL

Alexander Levin in Kotlin Community
Но можно просто уточнить у самих ребят, которые пушили больше всех эту фичу (например https://twitter.com/raulraja)
источник

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
над ним ещё будут работать ? ему уже 3 года
Сейчас добавка новых фич остановлена из-за переползания на новый компилятор. Когда разморозится - будем смотреть, сто language комитет решит
источник

AS

Andrei Shikov in Kotlin Community
Alexander Levin
Ну на докладах они упоминают ещё этот кип. Т.е. выглядит, что они сместили фокус с "пытаться пропушить жёстко в язык" до "докинуть возможность подключать функционал компиляторными плагинами", но про эти плагины в том числе была речь, что с помощью них просто можно что-то добавить в язык и посмотреть как будет выглядеть, чтобы было проще понять, нужно ли оно непосредственно в языке или нет.
Так они и докинули же в arrow-meta
Насчёт того, чтобы докидывать в язык, они вроде сдались с этим, но хз точно
источник

с#

саша сок #KotlinGang... in Kotlin Community
ну хорошо, будем верить, а в чем необходимость компилятора нового ?
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Сейчас добавка новых фич остановлена из-за переползания на новый компилятор. Когда разморозится - будем смотреть, сто language комитет решит
есть что почитать про это ?
источник