From ec985b1ffe4e0728f35854beb4b30032d6a0071b Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Mon, 24 Jul 2023 14:32:38 +0200 Subject: [PATCH] [Gradle] Add ExperimentalForeignApi opt-ins to integration tests 3f3f6eb marks all cinterop-generated declarations with @ExperimentalForeignApi. As a result, all usages of such declarations have to opt-in explicitly. This commit adds those opt-ins to all usages in the Kotlin Gradle plugin integration tests. ^KT-58362 --- .../kotlin/org/jetbrains/kotlin/gradle/native/CinteropIT.kt | 2 +- .../src/linuxMain/kotlin/org/sample/Platform.kt | 1 + .../dep-with-cinterop/src/commonMain/kotlin/pkg/common.kt | 1 + .../p1/src/nativeMain/kotlin/commonMain.kt | 1 + .../p1/src/nativeMainParent/kotlin/NativeMainParent.kt | 1 + .../p1/src/nativePlatformMain/kotlin/NativePlatformMain.kt | 1 + .../src/commonMain/kotlin/CommonMain.kt | 1 + .../src/nativeMain/kotlin/commonMain.kt | 1 + .../src/nativePlatformMain/kotlin/NativePlatformMain.kt | 1 + .../src/platformMain/kotlin/NativeMain.kt | 1 + .../src/commonMain/kotlin/CommonMain.kt | 1 + .../lib/src/commonMain/kotlin/A.kt | 1 + .../consumer/src/commonMain/kotlin/CommonMain.kt | 1 + .../src/nativeCommonMain/kotlin/ProducerNativeCommonMain.kt | 1 + .../consumerA/src/linuxX64Main/kotlin/ConsumerALinuxX64.kt | 1 + .../native-cinterop/projectLibrary/src/hostMain/kotlin/main.kt | 1 + .../publishedLibrary/src/hostMain/kotlin/main.kt | 1 + .../testProject/native-cinterop/src/hostMain/kotlin/main.kt | 1 + .../testProject/native-cinterop/src/hostTest/kotlin/test.kt | 1 + 19 files changed, 19 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CinteropIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CinteropIT.kt index 3d1f9a89bab..3877d3c943a 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CinteropIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CinteropIT.kt @@ -26,7 +26,7 @@ class CinteropIT : KGPBaseTest() { headerFile.writeText("void foo();") buildAndFail(":compileKotlinLinux") { assertTasksExecuted(":cinteropNlibLinux") - assertOutputContains("src/linuxMain/kotlin/org/sample/Platform.kt:2:10 Unresolved reference: sample") + assertOutputContains("src/linuxMain/kotlin/org/sample/Platform.kt:3:10 Unresolved reference: sample") } headerFile.writeText("void sample(int i);") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cinterop-kt-53191/src/linuxMain/kotlin/org/sample/Platform.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cinterop-kt-53191/src/linuxMain/kotlin/org/sample/Platform.kt index 815717ff4c6..b900268cd16 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cinterop-kt-53191/src/linuxMain/kotlin/org/sample/Platform.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cinterop-kt-53191/src/linuxMain/kotlin/org/sample/Platform.kt @@ -1,3 +1,4 @@ fun foo() { + @OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) nlib.sample(5) } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cinteropImport/dep-with-cinterop/src/commonMain/kotlin/pkg/common.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cinteropImport/dep-with-cinterop/src/commonMain/kotlin/pkg/common.kt index 469298258ac..4b6ab0e1274 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cinteropImport/dep-with-cinterop/src/commonMain/kotlin/pkg/common.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/cinteropImport/dep-with-cinterop/src/commonMain/kotlin/pkg/common.kt @@ -3,5 +3,6 @@ package pkg import dep.* class DependencyKotlinClass { + @OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) val mode: Dependency = Dependency.GOO } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativeMain/kotlin/commonMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativeMain/kotlin/commonMain.kt index 34bbcec9a7d..37605e36f77 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativeMain/kotlin/commonMain.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativeMain/kotlin/commonMain.kt @@ -7,4 +7,5 @@ fun nativeMain() { usleep(100u) } +@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) fun nativeMainUsingCInterop() = dummyFunction() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativeMainParent/kotlin/NativeMainParent.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativeMainParent/kotlin/NativeMainParent.kt index 2bb69b53993..378d30b6f83 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativeMainParent/kotlin/NativeMainParent.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativeMainParent/kotlin/NativeMainParent.kt @@ -8,4 +8,5 @@ fun commonMain() { usleep(100u) } +@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) fun nativeMainParentUsingCInterop() = dummyFunction() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativePlatformMain/kotlin/NativePlatformMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativePlatformMain/kotlin/NativePlatformMain.kt index 54e78d31847..3646170f098 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativePlatformMain/kotlin/NativePlatformMain.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-46248-singleNativeTargetPropagation/p1/src/nativePlatformMain/kotlin/NativePlatformMain.kt @@ -7,4 +7,5 @@ fun main() { usleep(100u) } +@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) fun nativePlatformMainUsingCInterop() = dummyFunction() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/commonMain/kotlin/CommonMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/commonMain/kotlin/CommonMain.kt index f2ab4d8449e..363eed0d2de 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/commonMain/kotlin/CommonMain.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/commonMain/kotlin/CommonMain.kt @@ -2,4 +2,5 @@ import dummy.dummyFunction +@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) fun commonMain() = dummyFunction() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/nativeMain/kotlin/commonMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/nativeMain/kotlin/commonMain.kt index 8a44d6134d9..28cae2caf34 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/nativeMain/kotlin/commonMain.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/nativeMain/kotlin/commonMain.kt @@ -2,4 +2,5 @@ import dummy.dummyFunction +@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) fun nativeMain() = dummyFunction() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/nativePlatformMain/kotlin/NativePlatformMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/nativePlatformMain/kotlin/NativePlatformMain.kt index c7c9333a3b4..576ba3ec139 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/nativePlatformMain/kotlin/NativePlatformMain.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-47523-singleNativeTargetPropagation-cinterop/src/nativePlatformMain/kotlin/NativePlatformMain.kt @@ -2,4 +2,5 @@ import dummy.dummyFunction +@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) fun nativePlatformMain() = dummyFunction() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-48856-singleNativeTargetPropagation-testSourceSet/src/platformMain/kotlin/NativeMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-48856-singleNativeTargetPropagation-testSourceSet/src/platformMain/kotlin/NativeMain.kt index 818cbf1319e..53c6465be7e 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-48856-singleNativeTargetPropagation-testSourceSet/src/platformMain/kotlin/NativeMain.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-48856-singleNativeTargetPropagation-testSourceSet/src/platformMain/kotlin/NativeMain.kt @@ -3,5 +3,6 @@ import sampleInterop.sampleInterop object NativeMain { + @OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) fun x() = sampleInterop() } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50847-cinterop-missing-in-supported-target/src/commonMain/kotlin/CommonMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50847-cinterop-missing-in-supported-target/src/commonMain/kotlin/CommonMain.kt index b32a3d889d3..c16ef49a917 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50847-cinterop-missing-in-supported-target/src/commonMain/kotlin/CommonMain.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50847-cinterop-missing-in-supported-target/src/commonMain/kotlin/CommonMain.kt @@ -1,3 +1,4 @@ import simple.simpleInteropFunction +@OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) fun main() = simpleInteropFunction() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-51517-transitive-cinterop/lib/src/commonMain/kotlin/A.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-51517-transitive-cinterop/lib/src/commonMain/kotlin/A.kt index 211ff908c52..de9ffe904c3 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-51517-transitive-cinterop/lib/src/commonMain/kotlin/A.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-51517-transitive-cinterop/lib/src/commonMain/kotlin/A.kt @@ -1,5 +1,6 @@ import dummy.foo fun dummyMain() { + @OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) foo() } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-56729-consume-library-with-two-roots/consumer/src/commonMain/kotlin/CommonMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-56729-consume-library-with-two-roots/consumer/src/commonMain/kotlin/CommonMain.kt index 3c8bfd9f905..66bf772ff6b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-56729-consume-library-with-two-roots/consumer/src/commonMain/kotlin/CommonMain.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-56729-consume-library-with-two-roots/consumer/src/commonMain/kotlin/CommonMain.kt @@ -1,5 +1,6 @@ object CommonMain { init { + @OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) ProducerNativeCommonMain.fromCInterop().value } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-56729-consume-library-with-two-roots/producer/src/nativeCommonMain/kotlin/ProducerNativeCommonMain.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-56729-consume-library-with-two-roots/producer/src/nativeCommonMain/kotlin/ProducerNativeCommonMain.kt index a48828cc866..0ba232f6e3c 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-56729-consume-library-with-two-roots/producer/src/nativeCommonMain/kotlin/ProducerNativeCommonMain.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-56729-consume-library-with-two-roots/producer/src/nativeCommonMain/kotlin/ProducerNativeCommonMain.kt @@ -1,5 +1,6 @@ import `producer-cinterop-library`.ProducerCLibraryStruct object ProducerNativeCommonMain { + @OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) fun fromCInterop(): ProducerCLibraryStruct = error("Stub!") } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-composite-build/sample4-KT-37051-withCInterop/consumerBuild/consumerA/src/linuxX64Main/kotlin/ConsumerALinuxX64.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-composite-build/sample4-KT-37051-withCInterop/consumerBuild/consumerA/src/linuxX64Main/kotlin/ConsumerALinuxX64.kt index 68b3ac37a17..b2586251522 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-composite-build/sample4-KT-37051-withCInterop/consumerBuild/consumerA/src/linuxX64Main/kotlin/ConsumerALinuxX64.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/mpp-composite-build/sample4-KT-37051-withCInterop/consumerBuild/consumerA/src/linuxX64Main/kotlin/ConsumerALinuxX64.kt @@ -11,6 +11,7 @@ object ConsumerALinuxX64 { ProducerANative ProducerALinuxX64 + @OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) myCFunction() } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/projectLibrary/src/hostMain/kotlin/main.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/projectLibrary/src/hostMain/kotlin/main.kt index 0336aafc164..2d44d61a16c 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/projectLibrary/src/hostMain/kotlin/main.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/projectLibrary/src/hostMain/kotlin/main.kt @@ -6,5 +6,6 @@ package library.cinterop.project fun projectAnswer(): Int { + @OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) return getAnotherNumber() * 2 } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/publishedLibrary/src/hostMain/kotlin/main.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/publishedLibrary/src/hostMain/kotlin/main.kt index 2dc523e07a1..6fa38daeee8 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/publishedLibrary/src/hostMain/kotlin/main.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/publishedLibrary/src/hostMain/kotlin/main.kt @@ -6,5 +6,6 @@ package library.cinterop.project fun publishedAnswer(): Int { + @OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) return getNumber() * 2 } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/src/hostMain/kotlin/main.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/src/hostMain/kotlin/main.kt index c7226eb9275..54b4d136ada 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/src/hostMain/kotlin/main.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/src/hostMain/kotlin/main.kt @@ -12,5 +12,6 @@ fun libraryAnswer(): Int { } fun selfCalculatedAnswer(): Int { + @OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) return getNumber() * 2 + getAnotherNumber() * 2 } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/src/hostTest/kotlin/test.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/src/hostTest/kotlin/test.kt index 0780d842432..df729d27244 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/src/hostTest/kotlin/test.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cinterop/src/hostTest/kotlin/test.kt @@ -10,5 +10,6 @@ import kotlin.test.* fun testAnswer() { assertEquals(12, libraryAnswer()) assertEquals(12, selfCalculatedAnswer()) + @OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) assertEquals(5, getTestNumber()) }