Skip to content

Dispatchers.Main causes IDE error loops in 0.27.0 #626

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
LouisCAD opened this issue Sep 27, 2018 · 8 comments
Closed

Dispatchers.Main causes IDE error loops in 0.27.0 #626

LouisCAD opened this issue Sep 27, 2018 · 8 comments

Comments

@LouisCAD
Copy link
Contributor

This issue doesn't happen on version 0.26.1, and neither invalidate caches and restart nor refresh dependencies solve it on 0.27.0

When I hover the mouse with command held down, it recognizes everything but .Main that comes after Dispatchers, even when imported manually (autocomplete doesn't work for it).

I'm forced to revert to 0.26.1 to work on an update for BleGattCoroutines because of this.

Title of the IDE error: Worker exited due to exception

File /Users/MysUserName/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-android/0.27.0/d39131c2f7b764a793152c5fa61205033d5553a0/kotlinx-coroutines-android-0.27.0.jar!/kotlinx/coroutines/experimental/android/HandlerDispatcherKt.class_file.txt:

// IntelliJ API Decompiler stub source generated from a class file
// Implementation of methods is not available

package kotlinx.coroutines.experimental.android

private const val MAX_DELAY: kotlin.Long /* compiled code */

@field:kotlin.jvm.JvmField internal val Main: kotlinx.coroutines.experimental.android.HandlerDispatcher /* compiled code */

private var choreographer: android.view.Choreographer? /* compiled code */

internal val mainHandler: android.os.Handler /* compiled code */

public val kotlinx.coroutines.experimental.Dispatchers.Main: kotlinx.coroutines.experimental.android.HandlerDispatcher /* compiled code */

public suspend fun awaitFrame(): kotlin.Long { /* compiled code */ }

private fun postFrameCallback(choreographer: android.view.Choreographer, cont: kotlinx.coroutines.experimental.CancellableContinuation<kotlin.Long>): kotlin.Unit { /* compiled code */ }

private fun updateChoreographerAndPostFrameCallback(cont: kotlinx.coroutines.experimental.CancellableContinuation<kotlin.Long>): kotlin.Unit { /* compiled code */ }

@kotlin.jvm.JvmName @kotlin.jvm.JvmOverloads public fun android.os.Handler.asCoroutineDispatcher(name: kotlin.String? /* = compiled code */): kotlinx.coroutines.experimental.android.HandlerDispatcher { /* compiled code */ }

@android.support.annotation.VisibleForTesting internal fun android.os.Looper.asHandler(async: kotlin.Boolean): android.os.Handler { /* compiled code */ }

File stubTree.txt:

```log PsiJetFileStubImpl[package=kotlinx.coroutines.experimental.android] KotlinStub$PACKAGE_DIRECTIVE KotlinStub$DOT_QUALIFIED_EXPRESSION KotlinStub$DOT_QUALIFIED_EXPRESSION KotlinStub$DOT_QUALIFIED_EXPRESSION KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$IMPORT_LIST KotlinStub$PROPERTY[fqName=kotlinx.coroutines.experimental.android.MAX_DELAY, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=MAX_DELAY] KotlinStub$MODIFIER_LIST[private const] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Long] KotlinStub$PROPERTY[fqName=kotlinx.coroutines.experimental.android.Main, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=Main] KotlinStub$MODIFIER_LIST[internal] KotlinStub$ANNOTATION_ENTRY[hasValueArguments=false, shortName=JvmField] KotlinStub$ANNOTATION_TARGET[useSiteTarget=FIELD] KotlinStub$CONSTRUCTOR_CALLEE KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=jvm] KotlinStub$REFERENCE_EXPRESSION[referencedName=JvmField] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=HandlerDispatcher] KotlinStub$PROPERTY[fqName=kotlinx.coroutines.experimental.android.choreographer, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=true, name=choreographer] KotlinStub$MODIFIER_LIST[private] KotlinStub$TYPE_REFERENCE KotlinStub$NULLABLE_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=view] KotlinStub$REFERENCE_EXPRESSION[referencedName=Choreographer] KotlinStub$PROPERTY[fqName=kotlinx.coroutines.experimental.android.mainHandler, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=mainHandler] KotlinStub$MODIFIER_LIST[internal] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=os] KotlinStub$REFERENCE_EXPRESSION[referencedName=Handler] KotlinStub$PROPERTY[fqName=kotlinx.coroutines.experimental.android.Main, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=true, isVar=false, name=Main] KotlinStub$MODIFIER_LIST[public] KotlinStub$ANNOTATION_ENTRY[hasValueArguments=false, shortName=JvmField] KotlinStub$ANNOTATION_TARGET[useSiteTarget=FIELD] KotlinStub$CONSTRUCTOR_CALLEE KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=jvm] KotlinStub$REFERENCE_EXPRESSION[referencedName=JvmField] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=Dispatchers] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=HandlerDispatcher] KotlinStub$FUN[fqName=kotlinx.coroutines.experimental.android.awaitFrame, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=awaitFrame] KotlinStub$MODIFIER_LIST[public suspend] KotlinStub$VALUE_PARAMETER_LIST KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Long] KotlinStub$FUN[fqName=kotlinx.coroutines.experimental.android.postFrameCallback, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=postFrameCallback] KotlinStub$MODIFIER_LIST[private] KotlinStub$VALUE_PARAMETER_LIST KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=choreographer] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=view] KotlinStub$REFERENCE_EXPRESSION[referencedName=Choreographer] KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=cont] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=CancellableContinuation] KotlinStub$TYPE_ARGUMENT_LIST KotlinStub$TYPE_PROJECTION[projectionKind=NONE] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Long] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Unit] KotlinStub$FUN[fqName=kotlinx.coroutines.experimental.android.updateChoreographerAndPostFrameCallback, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=updateChoreographerAndPostFrameCallback] KotlinStub$MODIFIER_LIST[private] KotlinStub$VALUE_PARAMETER_LIST KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=cont] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=CancellableContinuation] KotlinStub$TYPE_ARGUMENT_LIST KotlinStub$TYPE_PROJECTION[projectionKind=NONE] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Long] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Unit] KotlinStub$FUN[fqName=kotlinx.coroutines.experimental.android.asCoroutineDispatcher, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=true, mayHaveContract=false, name=asCoroutineDispatcher] KotlinStub$MODIFIER_LIST[public] KotlinStub$ANNOTATION_ENTRY[hasValueArguments=false, shortName=JvmName] KotlinStub$CONSTRUCTOR_CALLEE KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=jvm] KotlinStub$REFERENCE_EXPRESSION[referencedName=JvmName] KotlinStub$ANNOTATION_ENTRY[hasValueArguments=false, shortName=JvmOverloads] KotlinStub$CONSTRUCTOR_CALLEE KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=jvm] KotlinStub$REFERENCE_EXPRESSION[referencedName=JvmOverloads] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=os] KotlinStub$REFERENCE_EXPRESSION[referencedName=Handler] KotlinStub$VALUE_PARAMETER_LIST KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=name] KotlinStub$TYPE_REFERENCE KotlinStub$NULLABLE_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=String] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=HandlerDispatcher] KotlinStub$FUN[fqName=kotlinx.coroutines.experimental.android.asHandler, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=true, mayHaveContract=false, name=asHandler] KotlinStub$MODIFIER_LIST[internal] KotlinStub$ANNOTATION_ENTRY[hasValueArguments=false, shortName=VisibleForTesting] KotlinStub$CONSTRUCTOR_CALLEE KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=support] KotlinStub$REFERENCE_EXPRESSION[referencedName=annotation] KotlinStub$REFERENCE_EXPRESSION[referencedName=VisibleForTesting] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=os] KotlinStub$REFERENCE_EXPRESSION[referencedName=Looper] KotlinStub$VALUE_PARAMETER_LIST KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=async] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Boolean] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=os] KotlinStub$REFERENCE_EXPRESSION[referencedName=Handler] ```

File stubTreeFromIndex.txt:

```log PsiJetFileStubImpl[package=kotlinx.coroutines.experimental.android] KotlinStub$PACKAGE_DIRECTIVE KotlinStub$DOT_QUALIFIED_EXPRESSION KotlinStub$DOT_QUALIFIED_EXPRESSION KotlinStub$DOT_QUALIFIED_EXPRESSION KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$IMPORT_LIST KotlinStub$PROPERTY[fqName=kotlinx.coroutines.experimental.android.MAX_DELAY, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=MAX_DELAY] KotlinStub$MODIFIER_LIST[private const] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Long] KotlinStub$PROPERTY[fqName=kotlinx.coroutines.experimental.android.Main, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=Main] KotlinStub$MODIFIER_LIST[internal] KotlinStub$ANNOTATION_ENTRY[hasValueArguments=false, shortName=JvmField] KotlinStub$ANNOTATION_TARGET[useSiteTarget=FIELD] KotlinStub$CONSTRUCTOR_CALLEE KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=jvm] KotlinStub$REFERENCE_EXPRESSION[referencedName=JvmField] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=HandlerDispatcher] KotlinStub$PROPERTY[fqName=kotlinx.coroutines.experimental.android.choreographer, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=true, name=choreographer] KotlinStub$MODIFIER_LIST[private] KotlinStub$TYPE_REFERENCE KotlinStub$NULLABLE_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=view] KotlinStub$REFERENCE_EXPRESSION[referencedName=Choreographer] KotlinStub$PROPERTY[fqName=kotlinx.coroutines.experimental.android.mainHandler, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=mainHandler] KotlinStub$MODIFIER_LIST[internal] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=os] KotlinStub$REFERENCE_EXPRESSION[referencedName=Handler] KotlinStub$PROPERTY[fqName=kotlinx.coroutines.experimental.android.Main, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=true, isVar=false, name=Main] KotlinStub$MODIFIER_LIST[public] KotlinStub$ANNOTATION_ENTRY[hasValueArguments=false, shortName=JvmField] KotlinStub$ANNOTATION_TARGET[useSiteTarget=FIELD] KotlinStub$CONSTRUCTOR_CALLEE KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=jvm] KotlinStub$REFERENCE_EXPRESSION[referencedName=JvmField] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=Dispatchers] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=HandlerDispatcher] KotlinStub$FUN[fqName=kotlinx.coroutines.experimental.android.awaitFrame, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=awaitFrame] KotlinStub$MODIFIER_LIST[public suspend] KotlinStub$VALUE_PARAMETER_LIST KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Long] KotlinStub$FUN[fqName=kotlinx.coroutines.experimental.android.postFrameCallback, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=postFrameCallback] KotlinStub$MODIFIER_LIST[private] KotlinStub$VALUE_PARAMETER_LIST KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=choreographer] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=view] KotlinStub$REFERENCE_EXPRESSION[referencedName=Choreographer] KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=cont] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=CancellableContinuation] KotlinStub$TYPE_ARGUMENT_LIST KotlinStub$TYPE_PROJECTION[projectionKind=NONE] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Long] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Unit] KotlinStub$FUN[fqName=kotlinx.coroutines.experimental.android.updateChoreographerAndPostFrameCallback, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=updateChoreographerAndPostFrameCallback] KotlinStub$MODIFIER_LIST[private] KotlinStub$VALUE_PARAMETER_LIST KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=cont] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=CancellableContinuation] KotlinStub$TYPE_ARGUMENT_LIST KotlinStub$TYPE_PROJECTION[projectionKind=NONE] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Long] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Unit] KotlinStub$FUN[fqName=kotlinx.coroutines.experimental.android.asCoroutineDispatcher, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=true, mayHaveContract=false, name=asCoroutineDispatcher] KotlinStub$MODIFIER_LIST[public] KotlinStub$ANNOTATION_ENTRY[hasValueArguments=false, shortName=JvmName] KotlinStub$CONSTRUCTOR_CALLEE KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=jvm] KotlinStub$REFERENCE_EXPRESSION[referencedName=JvmName] KotlinStub$ANNOTATION_ENTRY[hasValueArguments=false, shortName=JvmOverloads] KotlinStub$CONSTRUCTOR_CALLEE KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=jvm] KotlinStub$REFERENCE_EXPRESSION[referencedName=JvmOverloads] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=os] KotlinStub$REFERENCE_EXPRESSION[referencedName=Handler] KotlinStub$VALUE_PARAMETER_LIST KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=name] KotlinStub$TYPE_REFERENCE KotlinStub$NULLABLE_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=String] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlinx] KotlinStub$REFERENCE_EXPRESSION[referencedName=coroutines] KotlinStub$REFERENCE_EXPRESSION[referencedName=experimental] KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=HandlerDispatcher] KotlinStub$FUN[fqName=kotlinx.coroutines.experimental.android.asHandler, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=true, mayHaveContract=false, name=asHandler] KotlinStub$MODIFIER_LIST[internal] KotlinStub$ANNOTATION_ENTRY[hasValueArguments=false, shortName=VisibleForTesting] KotlinStub$CONSTRUCTOR_CALLEE KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=support] KotlinStub$REFERENCE_EXPRESSION[referencedName=annotation] KotlinStub$REFERENCE_EXPRESSION[referencedName=VisibleForTesting] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=os] KotlinStub$REFERENCE_EXPRESSION[referencedName=Looper] KotlinStub$VALUE_PARAMETER_LIST KotlinStub$VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=async] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=kotlin] KotlinStub$REFERENCE_EXPRESSION[referencedName=Boolean] KotlinStub$TYPE_REFERENCE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$USER_TYPE KotlinStub$REFERENCE_EXPRESSION[referencedName=android] KotlinStub$REFERENCE_EXPRESSION[referencedName=os] KotlinStub$REFERENCE_EXPRESSION[referencedName=Handler] ```
@LouisCAD
Copy link
Contributor Author

FYI, I just tested on another computer, and the same issue happens on a Windows 10 machine (first tested on a Mac).
I don't know what's wrong, but something is wrong between kotlinx.coroutines 0.27.0 and Android Studio 3.2.0.

@GeoffreyMetais
Copy link

GeoffreyMetais commented Sep 27, 2018

Noticing the same behavior on Linux.

I have to manually write Main, Android Studio won't autocomplete.
Dispatchers.IO isn't always found neither.

LouisCAD added a commit to LouisCAD/Splitties that referenced this issue Sep 27, 2018
@LouisCAD
Copy link
Contributor Author

Just tried with version 0.30.0, and it has the same issue.

@erokhins
Copy link
Contributor

@LouisCAD What version of kotlin plugin do you have?

@rohandhruva
Copy link
Contributor

I had plugin version 1.2.71-release-Studio3.3-1 when I faced this problem.

@erokhins
Copy link
Contributor

Seems like kotlin plugin bug. I've created https://youtrack.jetbrains.com/issue/KT-27274

@LouisCAD
Copy link
Contributor Author

@erokhins I have 1.2.71 for Android Studio 3.2

@LouisCAD
Copy link
Contributor Author

LouisCAD commented Oct 1, 2018

Here's a workaround, taking place at the dependency level:

api "org.jetbrains.kotlinx:kotlinx-coroutines-core:0.30.0"
api "org.jetbrains.kotlinx:kotlinx-coroutines-android:0.26.1"

It seems there has been no real changes in the Android artifact since version 0.26.1, so it should be safe to use with core version 0.30.0. I tried successfully on a project.

qwwdfsad added a commit that referenced this issue Oct 1, 2018
…discoverable via ServiceLoader

  * Dispatchers.Main can be consistently used and easily discovered, its implementation is discovered with ServiceLoader
  * It allows us to add iOS Dispatchers.Main implementation in the future thus opening the door for multiplatform UI-dispatched code
  * Workaround for #626, now Android users can start migration to RC coroutines

Fixed #626
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants