Render unwrapped suspend function in backend
Hierarchy of specially wrapped suspend function may have inconsistent overridden descriptors: some of them may be wrapped, some unwrapped. To mitigate this problem, currently it's proposed to render only unwrapped functions, which are always have stable overridden descriptors #KT-23809 Fixed
This commit is contained in:
+44
@@ -0,0 +1,44 @@
|
||||
[
|
||||
{
|
||||
"declaration": "abstract class C<V> : B<V> defined in root package",
|
||||
"visibility": "public",
|
||||
"class": "C",
|
||||
"members": [
|
||||
{"visibility": "public", "declaration": "open suspend fun foo(): V", "name": "foo", "desc": "(Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"},
|
||||
{"visibility": "public", "declaration": "open suspend fun foo(): V", "name": "foo$suspendImpl", "desc": "(LC;Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"},
|
||||
{"visibility": "public", "declaration": "constructor C<V>()", "name": "<init>", "desc": "()V"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"declaration": "interface B<K> : A<K> defined in root package",
|
||||
"visibility": "public",
|
||||
"class": "B$DefaultImpls",
|
||||
"members": [
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"declaration": "interface B<K> : A<K> defined in root package",
|
||||
"visibility": "public",
|
||||
"class": "B",
|
||||
"members": [
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"declaration": "interface A<T> defined in root package",
|
||||
"visibility": "public",
|
||||
"class": "A$DefaultImpls",
|
||||
"members": [
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"declaration": "interface A<T> defined in root package",
|
||||
"visibility": "public",
|
||||
"class": "A",
|
||||
"members": [
|
||||
{"visibility": "public", "declaration": "abstract suspend fun foo(): T", "name": "foo", "desc": "(Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"}
|
||||
]
|
||||
}
|
||||
]
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
interface A<T> {
|
||||
suspend fun foo(): T
|
||||
}
|
||||
|
||||
interface B<K> : A<K>
|
||||
|
||||
abstract class C<V> : B<V> {
|
||||
override suspend fun foo(): V = TODO()
|
||||
}
|
||||
@@ -4,10 +4,10 @@
|
||||
"visibility": "local",
|
||||
"class": "SuspendLambdaKt$invokeCoroutineBuilder$1",
|
||||
"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 suspend fun kotlin.Any.<anonymous>(): kotlin.Unit", "name": "invoke", "desc": "(Ljava/lang/Object;Ljava/lang/Object;)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;"},
|
||||
{"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 suspend fun kotlin.Any.<anonymous>(): kotlin.Unit", "name": "<init>", "desc": "(Lkotlin/coroutines/experimental/Continuation;)V"},
|
||||
{"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;"}
|
||||
]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"visibility": "public",
|
||||
"class": "B",
|
||||
"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(): kotlin.Boolean", "name": "foo", "desc": "(Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"},
|
||||
{"visibility": "public", "declaration": "constructor B()", "name": "<init>", "desc": "()V"}
|
||||
]
|
||||
},
|
||||
@@ -29,7 +29,7 @@
|
||||
"visibility": "public",
|
||||
"class": "A",
|
||||
"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(): kotlin.Boolean", "name": "foo", "desc": "(Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -37,7 +37,7 @@
|
||||
"visibility": "public",
|
||||
"class": "C",
|
||||
"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(): kotlin.Boolean", "name": "foo", "desc": "(Lkotlin/coroutines/experimental/Continuation;)Ljava/lang/Object;"},
|
||||
{"visibility": "public", "declaration": "constructor C()", "name": "<init>", "desc": "()V"}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user