Remove $ character from fake continuation parameter
The reason is that when it gets captured into the field having name $$continuation inliner fails with an exception as it skips fields starting with '$$' At the same time it doesn't really matter how to call that parameter because it's only visible in Java #KT-17585 In Progress #KT-16603 In Progress
This commit is contained in:
+1
-1
@@ -179,7 +179,7 @@ fun <D : FunctionDescriptor> getOrCreateJvmSuspendFunctionView(function: D, bind
|
|||||||
bindingContext?.get(CodegenBinding.SUSPEND_FUNCTION_TO_JVM_VIEW, function)?.let { return it as D }
|
bindingContext?.get(CodegenBinding.SUSPEND_FUNCTION_TO_JVM_VIEW, function)?.let { return it as D }
|
||||||
|
|
||||||
val continuationParameter = ValueParameterDescriptorImpl(
|
val continuationParameter = ValueParameterDescriptorImpl(
|
||||||
function, null, function.valueParameters.size, Annotations.EMPTY, Name.identifier("\$continuation"),
|
function, null, function.valueParameters.size, Annotations.EMPTY, Name.identifier("continuation"),
|
||||||
// Add j.l.Object to invoke(), because that is the type of parameters we have in FunctionN+1
|
// Add j.l.Object to invoke(), because that is the type of parameters we have in FunctionN+1
|
||||||
if (function.containingDeclaration.safeAs<ClassDescriptor>()?.defaultType?.isBuiltinFunctionalType == true)
|
if (function.containingDeclaration.safeAs<ClassDescriptor>()?.defaultType?.isBuiltinFunctionalType == true)
|
||||||
function.builtIns.nullableAnyType
|
function.builtIns.nullableAnyType
|
||||||
|
|||||||
@@ -4,10 +4,10 @@
|
|||||||
"visibility": "local",
|
"visibility": "local",
|
||||||
"class": "SuspendLambdaKt$invokeCoroutineBuilder$1",
|
"class": "SuspendLambdaKt$invokeCoroutineBuilder$1",
|
||||||
"members": [
|
"members": [
|
||||||
{"visibility": "local", "declaration": "final fun kotlin.Any.<anonymous>(`$continuation`: kotlin.coroutines.experimental.Continuation<kotlin.Unit>): kotlin.Any?", "name": "invoke", "desc": "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"},
|
{"visibility": "local", "declaration": "final fun kotlin.Any.<anonymous>(continuation: kotlin.coroutines.experimental.Continuation<kotlin.Unit>): kotlin.Any?", "name": "invoke", "desc": "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"},
|
||||||
{"visibility": "local", "declaration": "<this>", "name": "p$", "desc": "Ljava/lang/Object;"},
|
{"visibility": "local", "declaration": "<this>", "name": "p$", "desc": "Ljava/lang/Object;"},
|
||||||
{"name": "doResume", "desc": "(Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object;"},
|
{"name": "doResume", "desc": "(Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/Object;"},
|
||||||
{"visibility": "local", "declaration": "final fun kotlin.Any.<anonymous>(`$continuation`: kotlin.coroutines.experimental.Continuation<kotlin.Unit>): kotlin.Any?", "name": "<init>", "desc": "(Lkotlin/coroutines/experimental/Continuation;)V"},
|
{"visibility": "local", "declaration": "final fun kotlin.Any.<anonymous>(continuation: kotlin.coroutines.experimental.Continuation<kotlin.Unit>): kotlin.Any?", "name": "<init>", "desc": "(Lkotlin/coroutines/experimental/Continuation;)V"},
|
||||||
{"name": "create", "desc": "(Ljava/lang/Object;Lkotlin/coroutines/experimental/Continuation;)Lkotlin/coroutines/experimental/Continuation;"},
|
{"name": "create", "desc": "(Ljava/lang/Object;Lkotlin/coroutines/experimental/Continuation;)Lkotlin/coroutines/experimental/Continuation;"},
|
||||||
{"name": "invoke", "desc": "(Ljava/lang/Object;Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"}
|
{"name": "invoke", "desc": "(Ljava/lang/Object;Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"visibility": "public",
|
"visibility": "public",
|
||||||
"class": "B",
|
"class": "B",
|
||||||
"members": [
|
"members": [
|
||||||
{"visibility": "public", "declaration": "open suspend fun foo(`$continuation`: kotlin.coroutines.experimental.Continuation<kotlin.Boolean>): kotlin.Any?", "name": "foo", "desc": "(Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"},
|
{"visibility": "public", "declaration": "open suspend fun foo(continuation: kotlin.coroutines.experimental.Continuation<kotlin.Boolean>): kotlin.Any?", "name": "foo", "desc": "(Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"},
|
||||||
{"visibility": "public", "declaration": "constructor B()", "name": "<init>", "desc": "()V"}
|
{"visibility": "public", "declaration": "constructor B()", "name": "<init>", "desc": "()V"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
"visibility": "public",
|
"visibility": "public",
|
||||||
"class": "A",
|
"class": "A",
|
||||||
"members": [
|
"members": [
|
||||||
{"visibility": "public", "declaration": "abstract suspend fun foo(`$continuation`: kotlin.coroutines.experimental.Continuation<kotlin.Boolean>): kotlin.Any?", "name": "foo", "desc": "(Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"}
|
{"visibility": "public", "declaration": "abstract suspend fun foo(continuation: kotlin.coroutines.experimental.Continuation<kotlin.Boolean>): kotlin.Any?", "name": "foo", "desc": "(Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
"visibility": "public",
|
"visibility": "public",
|
||||||
"class": "C",
|
"class": "C",
|
||||||
"members": [
|
"members": [
|
||||||
{"visibility": "public", "declaration": "final suspend fun foo(`$continuation`: kotlin.coroutines.experimental.Continuation<kotlin.Boolean>): kotlin.Any?", "name": "foo", "desc": "(Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"},
|
{"visibility": "public", "declaration": "final suspend fun foo(continuation: kotlin.coroutines.experimental.Continuation<kotlin.Boolean>): kotlin.Any?", "name": "foo", "desc": "(Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"},
|
||||||
{"visibility": "public", "declaration": "constructor C()", "name": "<init>", "desc": "()V"}
|
{"visibility": "public", "declaration": "constructor C()", "name": "<init>", "desc": "()V"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user