diff --git a/compiler/testData/builtin-classes/default/kotlin-coroutines.txt b/compiler/testData/builtin-classes/default/kotlin-coroutines.txt index 35a212fc704..f34b04a67d6 100644 --- a/compiler/testData/builtin-classes/default/kotlin-coroutines.txt +++ b/compiler/testData/builtin-classes/default/kotlin-coroutines.txt @@ -1,12 +1,24 @@ package-fragment kotlin.coroutines -@kotlin.SinceKotlin(version = "1.1") public inline suspend fun suspendWithCurrentContinuation(/*0*/ body: (kotlin.coroutines.Continuation) -> kotlin.Any?): T +@kotlin.PublishedApi internal inline suspend fun suspendWithCurrentContinuation(/*0*/ body: (kotlin.coroutines.Continuation) -> kotlin.Any?): T -@kotlin.SinceKotlin(version = "1.1") public interface Continuation { - public abstract fun resume(/*0*/ data: P): kotlin.Unit +@kotlin.SinceKotlin(version = "1.1") public interface Continuation { + public abstract fun resume(/*0*/ value: T): kotlin.Unit public abstract fun resumeWithException(/*0*/ exception: kotlin.Throwable): kotlin.Unit } -@kotlin.SinceKotlin(version = "1.1") public object Suspend { - /*primary*/ private constructor Suspend() +@kotlin.SinceKotlin(version = "1.1") public interface ContinuationDispatcher { + public open fun dispatchResume(/*0*/ value: T, /*1*/ continuation: kotlin.coroutines.Continuation): kotlin.Boolean + public open fun dispatchResumeWithException(/*0*/ exception: kotlin.Throwable, /*1*/ continuation: kotlin.coroutines.Continuation<*>): kotlin.Boolean +} + +@kotlin.SinceKotlin(version = "1.1") public object CoroutineIntrinsics { + /*primary*/ private constructor CoroutineIntrinsics() + @kotlin.SinceKotlin(version = "1.1") public final val SUSPENDED: kotlin.Any + public final fun (): kotlin.Any + public final inline suspend fun suspendCoroutineOrReturn(/*0*/ block: (kotlin.coroutines.Continuation) -> kotlin.Any?): T +} + +@kotlin.SinceKotlin(version = "1.1") @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS}) @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) public final annotation class RestrictsSuspendExtensions : kotlin.Annotation { + /*primary*/ public constructor RestrictsSuspendExtensions() } diff --git a/compiler/testData/codegen/box/reflection/modifiers/parameters.kt b/compiler/testData/codegen/box/reflection/modifiers/parameters.kt deleted file mode 100644 index 966d96ebddc..00000000000 --- a/compiler/testData/codegen/box/reflection/modifiers/parameters.kt +++ /dev/null @@ -1,27 +0,0 @@ -// TODO: muted automatically, investigate should it be ran for JS or not -// IGNORE_BACKEND: JS - -// WITH_REFLECT - -import kotlin.test.assertTrue -import kotlin.test.assertFalse -import kotlin.test.assertEquals - -inline fun Unit.foo( - noinline coroutine x: Unit.() -> Continuation, - vararg vararg: Unit -) {} - -fun box(): String { - val p = Unit::foo.parameters - - assertEquals(2, p.size) - - assertFalse(p[0].isVararg) - assertTrue(p[0].isCoroutine) - - assertTrue(p[1].isVararg) - assertFalse(p[1].isCoroutine) - - return "OK" -} diff --git a/compiler/testData/codegen/java8/box/async.kt b/compiler/testData/codegen/java8/box/async.kt index e74ab41b80d..ffcb44f9bec 100644 --- a/compiler/testData/codegen/java8/box/async.kt +++ b/compiler/testData/codegen/java8/box/async.kt @@ -2,6 +2,7 @@ // FULL_JDK import java.util.concurrent.CompletableFuture +import kotlin.coroutines.* fun foo(): CompletableFuture = CompletableFuture.supplyAsync { "foo" } fun bar(v: String): CompletableFuture = CompletableFuture.supplyAsync { "bar with $v" } @@ -43,7 +44,7 @@ fun box(): String { // LIBRARY CODE -fun async(c: @Suspend() (() -> T)): CompletableFuture { +fun async(c: suspend () -> T): CompletableFuture { val future = CompletableFuture() c.startCoroutine(object : Continuation { override fun resume(data: T) { diff --git a/compiler/testData/codegen/java8/box/asyncException.kt b/compiler/testData/codegen/java8/box/asyncException.kt index 4ff64323157..b83991c6495 100644 --- a/compiler/testData/codegen/java8/box/asyncException.kt +++ b/compiler/testData/codegen/java8/box/asyncException.kt @@ -2,6 +2,7 @@ // FULL_JDK import java.util.concurrent.CompletableFuture +import kotlin.coroutines.* fun exception(v: String): CompletableFuture = CompletableFuture.supplyAsync { throw RuntimeException(v) } @@ -40,9 +41,9 @@ fun box(): String { return "No exception" } -fun async(c: @Suspend() (() -> T)): CompletableFuture { +fun async(c: suspend () -> T): CompletableFuture { val future = CompletableFuture() - c.startContinuation(object : Continuation { + c.startCoroutine(object : Continuation { override fun resume(data: T) { future.complete(data) } diff --git a/compiler/testData/codegen/light-analysis/coroutines/dispatchResume.txt b/compiler/testData/codegen/light-analysis/coroutines/dispatchResume.txt index e960f4baf11..d5f130d6389 100644 --- a/compiler/testData/codegen/light-analysis/coroutines/dispatchResume.txt +++ b/compiler/testData/codegen/light-analysis/coroutines/dispatchResume.txt @@ -1,3 +1,4 @@ + public final class Controller { private @org.jetbrains.annotations.NotNull field log: java.lang.String private field resumeIndex: int @@ -17,15 +18,15 @@ public final class CoroutineUtilKt { } +public final class DispatchResumeKt { + public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String + public final static @org.jetbrains.annotations.NotNull method test(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function2): java.lang.String +} + + public final class EmptyContinuation { public final static field INSTANCE: EmptyContinuation private method (): void public method resume(@org.jetbrains.annotations.Nullable p0: java.lang.Object): void public method resumeWithException(@org.jetbrains.annotations.NotNull p0: java.lang.Throwable): void -} - - -public final class InterceptResumeKt { - public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String - public final static @org.jetbrains.annotations.NotNull method test(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function2): java.lang.String -} +} \ No newline at end of file diff --git a/compiler/testData/compileKotlinAgainstKotlin/coroutinesBinary.kt b/compiler/testData/compileKotlinAgainstKotlin/coroutinesBinary.kt index ee796142d1c..78300a2f8b3 100644 --- a/compiler/testData/compileKotlinAgainstKotlin/coroutinesBinary.kt +++ b/compiler/testData/compileKotlinAgainstKotlin/coroutinesBinary.kt @@ -1,14 +1,21 @@ // FILE: A.kt package a + +import kotlin.coroutines.* + class Controller { suspend fun suspendHere() = CoroutineIntrinsics.suspendCoroutineOrReturn { x -> x.resume("OK") - Suspend + CoroutineIntrinsics.SUSPENDED } } -fun builder(coroutine c: Controller.() -> Continuation) { - c(Controller()).resume(Unit) +fun builder(c: suspend Controller.() -> Unit) { + c.startCoroutine(Controller(), object : Continuation { + override fun resume(value: Unit) {} + + override fun resumeWithException(exception: Throwable) {} + }) } // FILE: B.kt diff --git a/compiler/testData/loadJava/compiledKotlin/type/SuspendFunction.kt b/compiler/testData/loadJava/compiledKotlin/type/SuspendFunction.kt index e61c47200b9..bc8c8916f2f 100644 --- a/compiler/testData/loadJava/compiledKotlin/type/SuspendFunction.kt +++ b/compiler/testData/loadJava/compiledKotlin/type/SuspendFunction.kt @@ -3,7 +3,6 @@ package test fun test1(): suspend () -> Unit = null!! -fun test2(): suspend (Int, String) -> Int = null!! -fun test3(): suspend Int.(String) -> Int = null!! -fun test4(): List Unit> = null!! -fun test5(): suspend (suspend () -> Unit) -> Unit = null!! +fun test2(): suspend Int.() -> Int = null!! +fun test3(): List Unit> = null!! +fun test4(): suspend () -> (suspend () -> Unit) = null!! diff --git a/compiler/testData/loadJava/compiledKotlin/type/SuspendFunction.txt b/compiler/testData/loadJava/compiledKotlin/type/SuspendFunction.txt index 9e66a1e8672..ea19fcf51b8 100644 --- a/compiler/testData/loadJava/compiledKotlin/type/SuspendFunction.txt +++ b/compiler/testData/loadJava/compiledKotlin/type/SuspendFunction.txt @@ -1,7 +1,6 @@ package test public fun test1(): suspend () -> kotlin.Unit -public fun test2(): suspend (kotlin.Int, kotlin.String) -> kotlin.Int -public fun test3(): suspend kotlin.Int.(kotlin.String) -> kotlin.Int -public fun test4(): kotlin.collections.List kotlin.Unit> -public fun test5(): suspend (suspend () -> kotlin.Unit) -> kotlin.Unit +public fun test2(): suspend kotlin.Int.() -> kotlin.Int +public fun test3(): kotlin.collections.List kotlin.Unit> +public fun test4(): suspend () -> suspend () -> kotlin.Unit diff --git a/compiler/testData/multiplatform/incompatibleCallables/common.kt b/compiler/testData/multiplatform/incompatibleCallables/common.kt index 3f21ad7cb2f..7fc707b5544 100644 --- a/compiler/testData/multiplatform/incompatibleCallables/common.kt +++ b/compiler/testData/multiplatform/incompatibleCallables/common.kt @@ -1,3 +1,5 @@ +import kotlin.coroutines.* + header fun f1() header fun f2(name: String) @@ -32,5 +34,5 @@ header inline fun f19(crossinline s: () -> Unit) header inline fun f20(s: () -> Unit) header inline fun f21(noinline s: () -> Unit) header inline fun f22(s: () -> Unit) -header fun f23(coroutine c: Unit.() -> Continuation) -header fun f24(c: Unit.() -> Continuation) +header fun f23(c: suspend Unit.() -> Unit) +header fun f24(c: Unit.() -> Unit) diff --git a/compiler/testData/multiplatform/incompatibleCallables/jvm.kt b/compiler/testData/multiplatform/incompatibleCallables/jvm.kt index f435a456294..6cc8fcf1b06 100644 --- a/compiler/testData/multiplatform/incompatibleCallables/jvm.kt +++ b/compiler/testData/multiplatform/incompatibleCallables/jvm.kt @@ -1,3 +1,5 @@ +import kotlin.coroutines.* + impl fun f1(): String = "" impl fun f2(otherName: String) {} @@ -32,5 +34,5 @@ impl inline fun f19(s: () -> Unit) {} impl inline fun f20(crossinline s: () -> Unit) {} impl inline fun f21(s: () -> Unit) {} impl inline fun f22(noinline s: () -> Unit) {} -impl fun f23(c: Unit.() -> Continuation) {} -impl fun f24(coroutine c: Unit.() -> Continuation) {} +impl fun f23(c: Unit.() -> Unit) {} +impl fun f24(c: suspend Unit.() -> Unit) {} diff --git a/compiler/testData/multiplatform/incompatibleCallables/output.txt b/compiler/testData/multiplatform/incompatibleCallables/output.txt index 7c8bbdea5ff..ce21dc881d2 100644 --- a/compiler/testData/multiplatform/incompatibleCallables/output.txt +++ b/compiler/testData/multiplatform/incompatibleCallables/output.txt @@ -5,202 +5,202 @@ Output: -- JVM -- Exit code: COMPILATION_ERROR Output: -compiler/testData/multiplatform/incompatibleCallables/common.kt:1:1: error: header declaration 'f1' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:3:1: error: header declaration 'f1' has no implementation in module The following declaration is incompatible because return type is different: public impl fun f1(): String header fun f1() ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:3:1: error: header declaration 'f2' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:5:1: error: header declaration 'f2' has no implementation in module The following declaration is incompatible because parameter names are different: public impl fun f2(otherName: String): Unit header fun f2(name: String) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:5:1: error: header declaration 'f3' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:7:1: error: header declaration 'f3' has no implementation in module The following declaration is incompatible because parameter types are different: public impl fun f3(name: Double): Unit header fun f3(name: String) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:6:1: error: header declaration 'f3ext' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:8:1: error: header declaration 'f3ext' has no implementation in module The following declaration is incompatible because parameter types are different: public impl fun Double.f3ext(): Unit header fun String.f3ext() ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:8:1: error: header declaration 'f4' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:10:1: error: header declaration 'f4' has no implementation in module The following declaration is incompatible because parameter shapes are different (extension vs non-extension): public impl fun String.f4(): Unit header fun f4(name: String) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:10:1: error: header declaration 'f5' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:12:1: error: header declaration 'f5' has no implementation in module The following declaration is incompatible because parameter shapes are different (extension vs non-extension): public impl fun f5(name: String): Unit header fun String.f5() ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:12:1: error: header declaration 'f6' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:14:1: error: header declaration 'f6' has no implementation in module The following declaration is incompatible because number of value parameters is different: public impl fun f6(p2: Int): Unit header fun f6(p1: String, p2: Int) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:14:1: error: header declaration 'f7' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:16:1: error: header declaration 'f7' has no implementation in module The following declaration is incompatible because number of type parameters is different: public impl fun f7(): Unit header fun f7() ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:16:1: error: header declaration 'f8' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:18:1: error: header declaration 'f8' has no implementation in module The following declaration is incompatible because visibility is different: public impl fun f8(): Unit internal header fun f8() ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:17:1: error: header declaration 'f9' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:19:1: error: header declaration 'f9' has no implementation in module The following declaration is incompatible because visibility is different: internal impl fun f9(): Unit private header fun f9() ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:18:1: error: header declaration 'f10' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:20:1: error: header declaration 'f10' has no implementation in module The following declaration is incompatible because visibility is different: private impl fun f10(): Unit public header fun f10() ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:24:1: error: header declaration 'f14' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:26:1: error: header declaration 'f14' has no implementation in module The following declaration is incompatible because some type parameter is reified in one declaration and non-reified in the other: public inline impl fun f14(): Unit header inline fun f14() ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:25:1: error: header declaration 'f15' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:27:1: error: header declaration 'f15' has no implementation in module The following declaration is incompatible because some type parameter is reified in one declaration and non-reified in the other: public inline impl fun f15(): Unit header inline fun f15() ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:27:1: error: header declaration 'f16' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:29:1: error: header declaration 'f16' has no implementation in module The following declaration is incompatible because some parameters have default values: public impl fun f16(s: String = ...): Unit header fun f16(s: String) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:29:1: error: header declaration 'f17' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:31:1: error: header declaration 'f17' has no implementation in module The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline): public impl fun f17(s: Array): Unit header fun f17(vararg s: String) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:30:1: error: header declaration 'f18' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:32:1: error: header declaration 'f18' has no implementation in module The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline): public impl fun f18(vararg s: String): Unit header fun f18(s: Array) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:31:1: error: header declaration 'f19' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:33:1: error: header declaration 'f19' has no implementation in module The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline): public inline impl fun f19(s: () -> Unit): Unit header inline fun f19(crossinline s: () -> Unit) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:32:1: error: header declaration 'f20' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:34:1: error: header declaration 'f20' has no implementation in module The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline): public inline impl fun f20(crossinline s: () -> Unit): Unit header inline fun f20(s: () -> Unit) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:33:1: error: header declaration 'f21' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:35:1: error: header declaration 'f21' has no implementation in module The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline): public inline impl fun f21(s: () -> Unit): Unit header inline fun f21(noinline s: () -> Unit) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:34:1: error: header declaration 'f22' has no implementation in module +compiler/testData/multiplatform/incompatibleCallables/common.kt:36:1: error: header declaration 'f22' has no implementation in module The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline): public inline impl fun f22(noinline s: () -> Unit): Unit header inline fun f22(s: () -> Unit) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:35:1: error: header declaration 'f23' has no implementation in module -The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline): - public impl fun f23(c: Unit.() -> Continuation): Unit +compiler/testData/multiplatform/incompatibleCallables/common.kt:37:1: error: header declaration 'f23' has no implementation in module +The following declaration is incompatible because parameter types are different: + public impl fun f23(c: Unit.() -> Unit): Unit -header fun f23(coroutine c: Unit.() -> Continuation) +header fun f23(c: suspend Unit.() -> Unit) ^ -compiler/testData/multiplatform/incompatibleCallables/common.kt:36:1: error: header declaration 'f24' has no implementation in module -The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline): - public impl fun f24(coroutine c: Unit.() -> Continuation): Unit +compiler/testData/multiplatform/incompatibleCallables/common.kt:38:1: error: header declaration 'f24' has no implementation in module +The following declaration is incompatible because parameter types are different: + public impl fun f24(c: suspend Unit.() -> Unit): Unit -header fun f24(c: Unit.() -> Continuation) -^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:1:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code -impl fun f1(): String = "" +header fun f24(c: Unit.() -> Unit) ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:3:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code -impl fun f2(otherName: String) {} +impl fun f1(): String = "" ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:5:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +impl fun f2(otherName: String) {} +^ +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:7:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl fun f3(name: Double) {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:6:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:8:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl fun Double.f3ext() {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:8:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:10:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl fun String.f4() {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:10:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:12:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl fun f5(name: String) {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:12:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:14:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl fun f6(p2: Int) {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:14:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:16:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl fun f7() {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:16:8: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:18:8: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code public impl fun f8() {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:17:10: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:19:10: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code internal impl fun f9() {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:18:9: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:20:9: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code private impl fun f10() {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:24:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:26:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl inline fun f14() {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:25:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:27:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl inline fun f15() {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:27:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:29:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl fun f16(s: String = "") {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:29:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:31:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl fun f17(s: Array) {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:30:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:32:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl fun f18(vararg s: String) {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:31:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:33:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl inline fun f19(s: () -> Unit) {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:32:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:34:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl inline fun f20(crossinline s: () -> Unit) {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:33:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:35:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl inline fun f21(s: () -> Unit) {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:34:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:36:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code impl inline fun f22(noinline s: () -> Unit) {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:35:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code -impl fun f23(c: Unit.() -> Continuation) {} +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:37:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +impl fun f23(c: Unit.() -> Unit) {} ^ -compiler/testData/multiplatform/incompatibleCallables/jvm.kt:36:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code -impl fun f24(coroutine c: Unit.() -> Continuation) {} +compiler/testData/multiplatform/incompatibleCallables/jvm.kt:38:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code +impl fun f24(c: suspend Unit.() -> Unit) {} ^ diff --git a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 496d9734c0f..15dca3f37cc 100644 --- a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -13831,12 +13831,6 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes doTest(fileName); } - @TestMetadata("parameters.kt") - public void testParameters() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/reflection/modifiers/parameters.kt"); - doTest(fileName); - } - @TestMetadata("properties.kt") public void testProperties() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/reflection/modifiers/properties.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index d28b74dcf42..fc8603ca575 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -13831,12 +13831,6 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest(fileName); } - @TestMetadata("parameters.kt") - public void testParameters() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/reflection/modifiers/parameters.kt"); - doTest(fileName); - } - @TestMetadata("properties.kt") public void testProperties() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/reflection/modifiers/properties.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeCodegenTestGenerated.java index ce327c8c2f5..c4d3cc2556e 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeCodegenTestGenerated.java @@ -13831,12 +13831,6 @@ public class LightAnalysisModeCodegenTestGenerated extends AbstractLightAnalysis doTest(fileName); } - @TestMetadata("parameters.kt") - public void testParameters() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/reflection/modifiers/parameters.kt"); - doTest(fileName); - } - @TestMetadata("properties.kt") public void testProperties() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/reflection/modifiers/properties.kt"); diff --git a/idea/testData/hierarchy/withLib/annotation/Annotation_verification.xml b/idea/testData/hierarchy/withLib/annotation/Annotation_verification.xml index bce7cb6bab1..42ce2f946d9 100644 --- a/idea/testData/hierarchy/withLib/annotation/Annotation_verification.xml +++ b/idea/testData/hierarchy/withLib/annotation/Annotation_verification.xml @@ -50,6 +50,7 @@ + diff --git a/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/build.log b/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/build.log index c8c6fee67d7..bc387a97aa3 100644 --- a/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/build.log +++ b/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/build.log @@ -14,6 +14,7 @@ Exit code: ADDITIONAL_PASS_REQUIRED Cleaning output files: out/production/module/META-INF/module.kotlin_module out/production/module/usage/Controller.class + out/production/module/usage/UsageKt$async$1.class out/production/module/usage/UsageKt$bar$1.class out/production/module/usage/UsageKt.class End of files diff --git a/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/usage.kt b/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/usage.kt index cbadda3b8fc..d2c7c5c40a7 100644 --- a/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/usage.kt +++ b/jps-plugin/testData/incremental/inlineFunCallSite/coroutine/usage.kt @@ -1,7 +1,12 @@ package usage +import kotlin.coroutines.* -fun async(coroutine x: Controller.() -> Continuation) { - x(Controller()).resume(Unit) +fun async(x: suspend Controller.() -> Unit) { + x.startCoroutine(Controller(), object : Continuation { + override fun resume(value: Unit) {} + + override fun resumeWithException(exception: Throwable) {} + }) } class Controller { diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 715e996c330..4bbd0617ed3 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -17318,18 +17318,6 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { throw new AssertionError("Looks like this test can be unmuted. Remove IGNORE_BACKEND directive for that."); } - @TestMetadata("parameters.kt") - public void testParameters() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/reflection/modifiers/parameters.kt"); - try { - doTest(fileName); - } - catch (Throwable ignore) { - return; - } - throw new AssertionError("Looks like this test can be unmuted. Remove IGNORE_BACKEND directive for that."); - } - @TestMetadata("properties.kt") public void testProperties() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/reflection/modifiers/properties.kt");