Allow suspend extensions for specially annotated controllers

This commit is contained in:
Denis Zharkov
2016-07-05 15:32:46 +03:00
parent 30b4dfa65d
commit 2cc09f928e
11 changed files with 68 additions and 5 deletions
@@ -1,8 +1,15 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -NOTHING_TO_INLINE
<!WRONG_MODIFIER_TARGET!>suspend<!> fun notMember(x: Continuation<Int>) {
<!INAPPLICABLE_MODIFIER!>suspend<!> fun notMember(x: Continuation<Int>) {
}
<!INAPPLICABLE_MODIFIER!>suspend<!> fun String.wrongExtension(x: Continuation<Int>) {
}
suspend fun Controller.correctExtension(x: Continuation<Int>) {
}
@AllowSuspendExtensions
class Controller {
suspend fun valid(x: Continuation<Int>) {
@@ -23,4 +30,8 @@ class Controller {
<!INAPPLICABLE_MODIFIER!>suspend<!> fun starProjection(vararg x: Continuation<Any>) {
}
suspend fun String.memberExtension(x: Continuation<Int>) {
}
}
@@ -1,8 +1,10 @@
package
public suspend fun notMember(/*0*/ x: kotlin.coroutines.Continuation<kotlin.Int>): kotlin.Unit
public suspend fun Controller.correctExtension(/*0*/ x: kotlin.coroutines.Continuation<kotlin.Int>): kotlin.Unit
public suspend fun kotlin.String.wrongExtension(/*0*/ x: kotlin.coroutines.Continuation<kotlin.Int>): kotlin.Unit
public final class Controller {
@kotlin.coroutines.AllowSuspendExtensions() public final class Controller {
public constructor Controller()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -12,4 +14,5 @@ public final class Controller {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final suspend fun valid(/*0*/ x: kotlin.coroutines.Continuation<kotlin.Int>): kotlin.Unit
public final suspend fun wrongParam(/*0*/ x: kotlin.collections.Collection<kotlin.Int>): kotlin.Unit
public final suspend fun kotlin.String.memberExtension(/*0*/ x: kotlin.coroutines.Continuation<kotlin.Int>): kotlin.Unit
}