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:
Mikhail Zarechenskiy
2018-04-16 03:08:00 +03:00
parent c216749eb6
commit 4af8833f08
6 changed files with 69 additions and 6 deletions
@@ -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;"}
]
}
]