: AbstractCoroutineContextElement(AuthUser) {
companion object Key : CoroutineContext.Key<AuthUser>
}
Имя у companion object необязательно, но если сам companion object убрать то ошибка
Classifier 'AuthUser' does not have a companion object, and thus must be initialized here
Классификатор такого типа public override val key: Key<*>.
Собственно вопрос: что за магия с Key? Каким образом накладывается требования к companion object соответствовать определенному типу?
UPD: сам пример взят отсюда https://github.com/Kotlin/KEEP/blob/master/proposals/coroutines.md#coroutine-context
Никакой магии, просто к companion object можно обратиться по имени класса
Обсуждают сегодня