diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt index ef130ec39bc..0215c5ff1c0 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt @@ -207,4 +207,16 @@ class SimpleKotlinGradleIT : KGPBaseTest() { build("assemble") } } + + @GradleTest + @DisplayName("useExperimentalAnnotation should produce deprecation warning") + fun testUseExperimentalAnnotationShouldProduceWarning(gradleVersion: GradleVersion) { + project("optInAnnotation", gradleVersion, buildOptions = defaultBuildOptions.copy(logLevel = LogLevel.DEBUG)) { + build("assemble") { + assertOutputContains("-Xopt-in=kotlin.RequiresOptIn") + assertOutputContains("-Xopt-in=FooAnnotation") + assertOutputContains("is deprecated and will be removed in next major releases") + } + } + } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/optInAnnotation/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/optInAnnotation/build.gradle new file mode 100644 index 00000000000..29870d2c5b6 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/optInAnnotation/build.gradle @@ -0,0 +1,19 @@ +plugins { + id "org.jetbrains.kotlin.jvm" +} + +repositories { + mavenLocal() + mavenCentral() +} + +kotlin { + sourceSets { + main { + languageSettings { + useExperimentalAnnotation("kotlin.RequiresOptIn") + useExperimentalAnnotation("FooAnnotation") + } + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/optInAnnotation/src/main/kotlin/foo.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/optInAnnotation/src/main/kotlin/foo.kt new file mode 100644 index 00000000000..d883aed4acd --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/optInAnnotation/src/main/kotlin/foo.kt @@ -0,0 +1,11 @@ +@Target(AnnotationTarget.CLASS) +@Retention(AnnotationRetention.BINARY) +@RequiresOptIn +annotation class FooAnnotation + +@FooAnnotation +class FooClass + +fun foo() { + FooClass() +} \ No newline at end of file