KT-64385 Enable K2 KAPT by default
Also adds support for front-end compiler plugins in Kapt
(cherry picked from commit 7e9d6e601d007bc1250e1b47c6b2e55e3399145b)
diff --git a/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArgumentsCopyGenerated.kt b/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArgumentsCopyGenerated.kt
index 6f50b16..f125da9 100644
--- a/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArgumentsCopyGenerated.kt
+++ b/compiler/cli/cli-common/gen/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArgumentsCopyGenerated.kt
@@ -78,7 +78,6 @@
to.typeEnhancementImprovementsInStrictMode = from.typeEnhancementImprovementsInStrictMode
to.useFastJarFileSystem = from.useFastJarFileSystem
to.useJavac = from.useJavac
- to.useKapt4 = from.useKapt4
to.useOldBackend = from.useOldBackend
to.useOldClassFilesReading = from.useOldClassFilesReading
to.useOldInlineClassesManglingScheme = from.useOldInlineClassesManglingScheme
diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt
index 146457d..b214ad3 100644
--- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt
+++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt
@@ -845,16 +845,6 @@
field = value
}
- @Argument(
- value = "-Xuse-kapt4",
- description = "Enable the experimental KAPT 4."
- )
- var useKapt4 = false
- set(value) {
- checkFrozen()
- field = value
- }
-
override fun configureAnalysisFlags(collector: MessageCollector, languageVersion: LanguageVersion): MutableMap<AnalysisFlag<*>, Any> {
val result = super.configureAnalysisFlags(collector, languageVersion)
result[JvmAnalysisFlags.strictMetadataVersionSemantics] = strictMetadataVersionSemantics
diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt
index 70cd63a..cc951af 100644
--- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt
+++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt
@@ -8,7 +8,6 @@
import com.intellij.ide.highlighter.JavaFileType
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.CommonToolArguments
-import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.ManualLanguageFeatureSetting
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
@@ -48,7 +47,6 @@
}
}
- switchToFallbackModeIfNecessary(arguments, messageCollector)
setupLanguageVersionSettings(arguments)
val usesK2 = arguments.useK2 || languageVersionSettings.languageVersion.usesK2
@@ -57,34 +55,6 @@
buildHmppModuleStructure(arguments)?.let { put(CommonConfigurationKeys.HMPP_MODULE_STRUCTURE, it) }
}
-private fun switchToFallbackModeIfNecessary(arguments: CommonCompilerArguments, messageCollector: MessageCollector) {
- fun warn(message: String) {
- if (!arguments.suppressVersionWarnings) messageCollector.report(CompilerMessageSeverity.STRONG_WARNING, message)
- }
-
- if (arguments !is K2JVMCompilerArguments) return
- val isK2 =
- arguments.useK2 || (arguments.languageVersion?.startsWith('2') ?: (LanguageVersion.LATEST_STABLE >= LanguageVersion.KOTLIN_2_0))
- val isKaptUsed = arguments.pluginOptions?.any { it.startsWith("plugin:org.jetbrains.kotlin.kapt3") } == true
- when {
- isK2 && isKaptUsed && !arguments.useKapt4 -> {
- warn("Kapt currently doesn't support language version 2.0+. Falling back to 1.9.")
- arguments.languageVersion = LanguageVersion.KOTLIN_1_9.versionString
- if (arguments.apiVersion?.startsWith("2") == true) {
- arguments.apiVersion = ApiVersion.KOTLIN_1_9.versionString
- }
- arguments.useK2 = false
- arguments.skipMetadataVersionCheck = true
- arguments.skipPrereleaseCheck = true
- arguments.allowUnstableDependencies = true
- }
- arguments.useKapt4 -> warn(
- if (isK2) "K2 kapt is an experimental feature. Use with caution."
- else "-Xuse-kapt4 flag can be only used with language version 2.0+."
- )
- }
-}
-
fun CompilerConfiguration.setupLanguageVersionSettings(arguments: CommonCompilerArguments) {
languageVersionSettings = arguments.toLanguageVersionSettings(getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY))
}
diff --git a/compiler/testData/cli/jvm/extraHelp.out b/compiler/testData/cli/jvm/extraHelp.out
index 207dfc4..b3b543b 100644
--- a/compiler/testData/cli/jvm/extraHelp.out
+++ b/compiler/testData/cli/jvm/extraHelp.out
@@ -142,7 +142,6 @@
See KT-45671 for more details.
-Xuse-fast-jar-file-system Use the fast implementation of Jar FS. This may speed up compilation time, but it is experimental.
-Xuse-javac Use javac for Java source and class file analysis.
- -Xuse-kapt4 Enable the experimental KAPT 4.
-Xuse-old-backend Use the old JVM backend.
-Xuse-old-class-files-reading Use the old implementation for reading class files. This may slow down the compilation and cause problems with Groovy interop.
This can be used in the event of problems with the new implementation.
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt
index f0d8516..30f3543 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt
@@ -12,9 +12,9 @@
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.DisplayName
-@DisplayName("Kapt caching inside Gradle daemon")
+@DisplayName("Kapt3 caching inside Gradle daemon")
@DaemonsGradlePluginTests
-class Kapt3AndGradleDaemon : KGPDaemonsBaseTest() {
+open class Kapt3AndGradleDaemon : KGPDaemonsBaseTest() {
override val defaultBuildOptions: BuildOptions = super.defaultBuildOptions
.copy(
@@ -22,7 +22,7 @@
verbose = true,
includeCompileClasspath = false
)
- )
+ ).copyEnsuringK1()
@DisplayName("Javac should be loaded only once")
@GradleTest
@@ -51,7 +51,7 @@
// which is not compatible with classloaders caching.
@GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_6)
@GradleTest
- fun testAnnotationProcessorClassIsLoadedOnce(gradleVersion: GradleVersion) {
+ open fun testAnnotationProcessorClassIsLoadedOnce(gradleVersion: GradleVersion) {
project(
"javacIsLoadedOnce".withPrefix,
gradleVersion,
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt
index f44abb3..7f83f91 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt
@@ -146,17 +146,9 @@
}
@Disabled("classloaders cache is leaking file descriptors that prevents cleaning test project")
- override fun useGeneratedKotlinSourceK2(gradleVersion: GradleVersion) {
- }
-
- @Disabled("classloaders cache is leaking file descriptors that prevents cleaning test project")
override fun testMultipleProcessingPasses(gradleVersion: GradleVersion) {
}
- @Disabled("classloaders cache is leaking file descriptors that prevents cleaning test project")
- override fun useK2KaptProperty(gradleVersion: GradleVersion) {
- }
-
override fun testAnnotationProcessorAsFqName(gradleVersion: GradleVersion) {
project("annotationProcessorAsFqName".withPrefix, gradleVersion) {
//classloaders caching is not compatible with includeCompileClasspath
@@ -1258,99 +1250,6 @@
}
}
- @DisplayName("Kapt runs in fallback mode with useK2 = true")
- @GradleTest
- open fun fallBackModeWithUseK2(gradleVersion: GradleVersion) {
- project("simple".withPrefix, gradleVersion) {
- buildGradle.appendText(
- """
- |tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
- | compilerOptions {
- | freeCompilerArgs.addAll([
- | "-Xuse-fir-ic",
- | "-Xuse-fir-lt"
- | ])
- | }
- | kotlinOptions {
- | useK2 = true
- | }
- |}
- |
- |compileKotlin.kotlinOptions.allWarningsAsErrors = false
- """.trimMargin()
- )
- build("build") {
- assertKaptSuccessful()
- assertTasksExecuted(":kaptGenerateStubsKotlin", ":kaptKotlin", ":compileKotlin")
- assertOutputContains("Falling back to 1.9.")
- }
- }
- }
-
- @DisplayName("Kapt runs in fallback mode with languageVersion = 2.0")
- @GradleTest
- open fun fallBackModeWithLanguageVersion2_0(gradleVersion: GradleVersion) {
- project("simple".withPrefix, gradleVersion) {
- buildGradle.appendText(
- """
- |tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
- | compilerOptions {
- | freeCompilerArgs.addAll([
- | "-Xuse-fir-ic",
- | "-Xuse-fir-lt"
- | ])
- | }
- | kotlinOptions {
- | languageVersion = "2.0"
- | }
- |}
- |
- |compileKotlin.kotlinOptions.allWarningsAsErrors = false
- """.trimMargin()
- )
- build("build") {
- assertKaptSuccessful()
- assertTasksExecuted(":kaptGenerateStubsKotlin", ":kaptKotlin", ":compileKotlin")
- assertOutputContains("Falling back to 1.9.")
- }
- }
- }
-
- @DisplayName("K2 Kapt can be enabled via Gradle property kapt.use.k2")
- @GradleTest
- open fun useK2KaptProperty(gradleVersion: GradleVersion) {
- project("simple".withPrefix, gradleVersion) {
- buildGradle.appendText(
- """
- |tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
- | compilerOptions {
- | freeCompilerArgs.addAll([
- | "-Xuse-fir-ic",
- | "-Xuse-fir-lt"
- | ])
- | }
- | kotlinOptions {
- | languageVersion = "2.0"
- | }
- |}
- |
- |compileKotlin.kotlinOptions.allWarningsAsErrors = false
- """.trimMargin()
- )
- build("-Pkapt.use.k2=true", "build") {
- assertKaptSuccessful()
- assertTasksExecuted(":kaptGenerateStubsKotlin", ":kaptKotlin", ":compileKotlin")
- assertOutputDoesNotContain("Falling back to 1.9.")
- assertOutputContains("K2 kapt is an experimental feature. Use with caution.")
- }
- build("-Pkapt.use.k2=true", "cleanCompileKotlin", "compileKotlin") {
- assertTasksExecuted(":compileKotlin")
- // The warning should not be displayed for the compile task.
- assertOutputDoesNotContain("K2 kapt is an experimental feature. Use with caution.")
- }
- }
- }
-
@DisplayName("Kapt-generated Kotlin sources can be used in Kotlin")
@GradleTest
open fun useGeneratedKotlinSource(gradleVersion: GradleVersion) {
@@ -1362,35 +1261,6 @@
}
}
- @DisplayName("Kapt-generated Kotlin sources can be used in Kotlin with languageVersion = 2.0")
- @GradleTest
- open fun useGeneratedKotlinSourceK2(gradleVersion: GradleVersion) {
- project("useGeneratedKotlinSource".withPrefix, gradleVersion) {
- buildGradle.appendText(
- """
- |tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
- | compilerOptions {
- | freeCompilerArgs.addAll([
- | "-Xuse-fir-ic",
- | "-Xuse-fir-lt"
- | ])
- | }
- | kotlinOptions {
- | languageVersion = "2.0"
- | }
- |}
- |
- |compileKotlin.kotlinOptions.allWarningsAsErrors = false
- """.trimMargin()
- )
- build("build") {
- assertKaptSuccessful()
- assertTasksExecuted(":kaptGenerateStubsKotlin", ":kaptKotlin", ":compileKotlin")
- assertOutputContains("Falling back to 1.9.")
- }
- }
- }
-
@DisplayName("KT-58745: compiler plugin options should be passed to KaptGenerateStubs task")
@GradleTest
fun kaptGenerateStubsConfiguredWithCompilerPluginOptions(gradleVersion: GradleVersion) {
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt4AndGradleDaemon.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt4AndGradleDaemon.kt
new file mode 100644
index 0000000..647cc10
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt4AndGradleDaemon.kt
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
+ */
+
+package org.jetbrains.kotlin.gradle
+
+import org.gradle.util.GradleVersion
+import org.jetbrains.kotlin.gradle.testbase.BuildOptions
+import org.jetbrains.kotlin.gradle.testbase.DaemonsGradlePluginTests
+import org.junit.jupiter.api.Disabled
+import org.junit.jupiter.api.DisplayName
+
+@DisplayName("Kapt4 caching inside Gradle daemon")
+@DaemonsGradlePluginTests
+class Kapt4AndGradleDaemon : Kapt3AndGradleDaemon() {
+ override val defaultBuildOptions: BuildOptions = super.defaultBuildOptions.copyEnsuringK2()
+
+ @Disabled("KT-63102 Incremental compilation doesn't work in 2.0")
+ override fun testAnnotationProcessorClassIsLoadedOnce(gradleVersion: GradleVersion) {}
+}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt4IT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt4IT.kt
index 3b72c1d..9e854f2 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt4IT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt4IT.kt
@@ -10,29 +10,24 @@
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.DisplayName
import kotlin.io.path.appendText
-import kotlin.io.path.name
-import kotlin.io.path.walk
+
@DisplayName("Kapt 4 base checks")
class Kapt4IT : Kapt3IT() {
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
- override fun TestProject.customizeProject() {
- forceKapt4()
+ @DisplayName("Kapt doesn't run in fallback mode with languageVersion = 2.0")
+ @GradleTest
+ fun noFallBackModeWithLanguageVersion2_0(gradleVersion: GradleVersion) {
+ project("simple".withPrefix, gradleVersion) {
+ build("build") {
+ assertKaptSuccessful()
+ assertTasksExecuted(":kaptGenerateStubsKotlin", ":kaptKotlin", ":compileKotlin")
+ assertOutputDoesNotContain("Falling back to 1.9.")
+ }
+ }
}
- @Disabled("Doesn't make sense in Kapt 4")
- override fun useGeneratedKotlinSourceK2(gradleVersion: GradleVersion) {}
-
- @Disabled("Doesn't make sense in Kapt 4")
- override fun fallBackModeWithUseK2(gradleVersion: GradleVersion) {}
-
- @Disabled("Doesn't make sense in Kapt 4")
- override fun fallBackModeWithLanguageVersion2_0(gradleVersion: GradleVersion) {}
-
- @Disabled("Doesn't make sense in Kapt 4")
- override fun useK2KaptProperty(gradleVersion: GradleVersion) {}
-
@DisplayName("KT-61879: K2 KAPT works with proguarded compiler jars and enum class")
@GradleTest
fun testEnumClass(gradleVersion: GradleVersion) {
@@ -50,57 +45,15 @@
class Kapt4ClassLoadersCacheIT : Kapt3ClassLoadersCacheIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
- override fun TestProject.customizeProject() {
- forceKapt4()
- }
-
@Disabled("Enable when KT-61845 is fixed")
override fun testKt18799(gradleVersion: GradleVersion) {}
- @Disabled("Doesn't make sense in Kapt 4")
- override fun useGeneratedKotlinSourceK2(gradleVersion: GradleVersion) {}
-
- @Disabled("Doesn't make sense in Kapt 4")
- override fun fallBackModeWithUseK2(gradleVersion: GradleVersion) {}
-
- @Disabled("Doesn't make sense in Kapt 4")
- override fun fallBackModeWithLanguageVersion2_0(gradleVersion: GradleVersion) {}
-
- @Disabled("Doesn't work in 2.0. Neither with Kapt 3 nor with Kapt 4")
- override fun testMPPKaptPresence(gradleVersion: GradleVersion) {}
-
- @Disabled("Incremental compilation doesn't work in 2.0")
+ @Disabled("KT-63102 Incremental compilation doesn't work in 2.0")
override fun testSimpleWithIC(gradleVersion: GradleVersion) {}
- @Disabled("Incremental compilation doesn't work in 2.0")
+ @Disabled("KT-63102 Incremental compilation doesn't work in 2.0")
override fun testSimpleWithIC_withClasspathSnapshot(gradleVersion: GradleVersion) {}
-}
-fun TestProject.forceKapt4() {
- projectPath.walk().forEach {
- when (it.fileName.name) {
- "build.gradle" -> it.appendText(
- """
-
- pluginManager.withPlugin('kotlin') {
- tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
- compilerOptions.freeCompilerArgs.addAll(['-Xuse-kapt4', '-Xsuppress-version-warnings'])
- }
- }
-
- """.trimIndent()
- )
- "build.gradle.kts" -> it.appendText(
- """
-
- pluginManager.withPlugin("kotlin") {
- tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile::class.java).configureEach {
- compilerOptions.freeCompilerArgs.addAll(listOf("-Xuse-kapt4", "-Xsuppress-version-warnings"))
- }
- }
-
- """.trimIndent()
- )
- }
- }
+ @Disabled("KT-63102 Incremental compilation doesn't work in 2.0")
+ override fun testChangeClasspathICRebuild(gradleVersion: GradleVersion) {}
}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalIT.kt
index 901b9ae..d9027bf 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalIT.kt
@@ -3,6 +3,7 @@
import org.gradle.api.logging.LogLevel
import org.gradle.testkit.runner.BuildResult
import org.gradle.util.GradleVersion
+import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
import org.jetbrains.kotlin.gradle.testbase.*
import org.junit.jupiter.api.DisplayName
import java.io.File
@@ -29,7 +30,7 @@
override val defaultBuildOptions = super.defaultBuildOptions.copy(
incremental = true,
kaptOptions = BuildOptions.KaptOptions(incrementalKapt = true)
- )
+ ).copyEnsuringK1()
protected open fun KGPBaseTest.kaptProject(
gradleVersion: GradleVersion,
@@ -186,8 +187,10 @@
build("assemble") {
assertKapt3FullyExecuted()
- assertFileInProjectExists("$kapt3IncDataPath/bar/B.class")
- assertFileInProjectExists("$kapt3IncDataPath/bar/UseBKt.class")
+ if (isIncrementalStubGenerationSupported) {
+ assertFileInProjectExists("$kapt3IncDataPath/bar/B.class")
+ assertFileInProjectExists("$kapt3IncDataPath/bar/UseBKt.class")
+ }
assertFileInProjectExists("$kapt3StubsPath/bar/B.java")
assertFileInProjectExists("$kapt3StubsPath/bar/B.kapt_metadata")
assertFileInProjectExists("$kapt3StubsPath/bar/UseBKt.java")
@@ -282,11 +285,13 @@
assertKapt3FullyExecuted()
val useBKt = javaSourcesDir().resolve("bar/useB.kt")
- assertCompiledKotlinSources(
- listOf(projectPath.relativize(bKt), projectPath.relativize(useBKt)),
- getOutputForTask(":kaptGenerateStubsKotlin"),
- errorMessageSuffix = " in task 'kaptGenerateStubsKotlin'"
- )
+ if (isIncrementalStubGenerationSupported) {
+ assertCompiledKotlinSources(
+ listOf(projectPath.relativize(bKt), projectPath.relativize(useBKt)),
+ getOutputForTask(":kaptGenerateStubsKotlin"),
+ errorMessageSuffix = " in task 'kaptGenerateStubsKotlin'"
+ )
+ }
// java removal is detected
assertCompiledKotlinSources(
@@ -343,17 +348,20 @@
buildResult: BuildResult,
sources: List<Path>
) {
- assertCompiledKotlinSources(
- sources,
- buildResult.getOutputForTask(":kaptGenerateStubsKotlin"),
- errorMessageSuffix = " in task 'kaptGenerateStubsKotlin"
- )
+ if (isIncrementalStubGenerationSupported) {
+ assertCompiledKotlinSources(
+ sources,
+ buildResult.getOutputForTask(":kaptGenerateStubsKotlin"),
+ errorMessageSuffix = " in task 'kaptGenerateStubsKotlin"
+ )
- assertCompiledKotlinSources(
- sources,
- buildResult.getOutputForTask(":compileKotlin"),
- errorMessageSuffix = " in task 'compileKotlin'"
- )
+
+ assertCompiledKotlinSources(
+ sources,
+ buildResult.getOutputForTask(":compileKotlin"),
+ errorMessageSuffix = " in task 'compileKotlin'"
+ )
+ }
}
private fun BuildResult.assertKapt3FullyExecuted() {
@@ -390,7 +398,17 @@
val TestProject.kaptGeneratedToPath get() = projectPath.resolve("build/generated/source/kapt")
}
+@DisplayName("K2 Kapt incremental compilation")
+@OtherGradlePluginTests
+class K2KaptIncrementalIT: KaptIncrementalIT() {
+ override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
+}
+
@DisplayName("Kapt incremental compilation with disabled precise compilation outputs backup")
class KaptIncrementalWithoutPreciseBackupIT : KaptIncrementalIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(usePreciseOutputsBackup = false, keepIncrementalCompilationCachesInMemory = false)
-}
\ No newline at end of file
+}
+
+// KT-63102 Incremental compilation doesn't work in 2.0
+val TestProject.isIncrementalStubGenerationSupported: Boolean
+ get() = buildOptions.languageVersion?.startsWith("1") ?: (KotlinVersion.DEFAULT < KotlinVersion.KOTLIN_2_0)
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt
index 08c3e4c..729ce71 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt
@@ -20,7 +20,7 @@
import kotlin.test.assertEquals
import kotlin.test.assertTrue
-@DisplayName("Kapt incremental tests with aggregating apt")
+@DisplayName("K1 Kapt incremental tests with aggregating apt")
open class KaptIncrementalWithAggregatingApt : KaptIncrementalIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(
@@ -390,8 +390,16 @@
}
}
+@DisplayName("K2 Kapt incremental tests with aggregating apt")
+class K2KaptIncrementalWithAggregatingApt: KaptIncrementalWithAggregatingApt() {
+ override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
+}
-@DisplayName("Kapt incremental tests with aggregating apt with disabled precise compilation outputs backup")
-class KaptIncrementalWithAggregatingAptAndWithoutPreciseBackup : KaptIncrementalWithAggregatingApt() {
+@DisplayName("K1 Kapt incremental tests with aggregating apt with disabled precise compilation outputs backup")
+open class KaptIncrementalWithAggregatingAptAndWithoutPreciseBackup : KaptIncrementalWithAggregatingApt() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(usePreciseOutputsBackup = false, keepIncrementalCompilationCachesInMemory = false)
+}
+
+class K2KaptIncrementalWithAggregatingAptAndWithoutPreciseBackup: KaptIncrementalWithAggregatingAptAndWithoutPreciseBackup() {
+ override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt
index 5adb3c8..2a89ea5 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt
@@ -12,6 +12,7 @@
import org.jetbrains.kotlin.gradle.incapt.IncrementalProcessor
import org.jetbrains.kotlin.gradle.incapt.IncrementalProcessorReferencingClasspath
import org.jetbrains.kotlin.gradle.testbase.*
+import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.condition.DisabledOnOs
import org.junit.jupiter.api.condition.OS
@@ -23,7 +24,7 @@
import kotlin.io.path.*
import kotlin.test.assertEquals
-@DisplayName("Kapt incremental tests with isolating apt")
+@DisplayName("K1 Kapt incremental tests with isolating apt")
open class KaptIncrementalWithIsolatingApt : KaptIncrementalIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(
@@ -33,7 +34,7 @@
incrementalKapt = true,
includeCompileClasspath = false
)
- )
+ ).copyEnsuringK1()
override fun KGPBaseTest.kaptProject(
gradleVersion: GradleVersion,
@@ -318,14 +319,16 @@
}
build(":mylibrary:assembleDebug") {
- assertEquals(
- listOf(
- "baseLibrary/build/tmp/kapt3/stubs/debug/error/NonExistentClass.java",
- "mylibrary/src/main/java/com/example/lib/ExampleParcel.java",
- "baseLibrary/src/main/java/com/example/lib2/basemodule/BaseClassParcel.java",
- ).map { projectPath.resolve(it).toRealPath().toString() }.toSet(),
- getProcessedSources(output)
- )
+ if (isIncrementalStubGenerationSupported) {
+ assertEquals(
+ listOf(
+ "baseLibrary/build/tmp/kapt3/stubs/debug/error/NonExistentClass.java",
+ "mylibrary/src/main/java/com/example/lib/ExampleParcel.java",
+ "baseLibrary/src/main/java/com/example/lib2/basemodule/BaseClassParcel.java",
+ ).map { projectPath.resolve(it).toRealPath().toString() }.toSet(),
+ getProcessedSources(output)
+ )
+ }
}
}
}
@@ -437,11 +440,21 @@
}
}
-@DisplayName("Kapt incremental tests with isolating apt with disabled precise compilation outputs backup")
-class KaptIncrementalWithIsolatingAptAndWithoutPreciseBackup : KaptIncrementalWithIsolatingApt() {
+@DisplayName("K2 Kapt incremental tests with isolating apt")
+class K2KaptIncrementalWithIsolatingApt : KaptIncrementalWithIsolatingApt() {
+ override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
+}
+
+@DisplayName("K1 Kapt incremental tests with isolating apt with disabled precise compilation outputs backup")
+open class KaptIncrementalWithIsolatingAptAndWithoutPreciseBackup : KaptIncrementalWithIsolatingApt() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(usePreciseOutputsBackup = false, keepIncrementalCompilationCachesInMemory = false)
}
+@DisplayName("K2 Kapt incremental tests with isolating apt with disabled precise compilation outputs backup")
+class K2KaptIncrementalWithIsolatingAptAndWithoutPreciseBackup : KaptIncrementalWithIsolatingAptAndWithoutPreciseBackup() {
+ override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
+}
+
private const val patternApt = "Processing java sources with annotation processors:"
fun getProcessedSources(output: String): Set<String> {
return output.lines().filter { it.contains(patternApt) }.flatMapTo(HashSet()) { logging ->
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidExternalIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidExternalIT.kt
index c61dc2b..152236e 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidExternalIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidExternalIT.kt
@@ -135,7 +135,7 @@
@DisplayName("kapt works with databinding")
@GradleAndroidTest
- fun testDatabinding(
+ open fun testDatabinding(
gradleVersion: GradleVersion,
agpVersion: String,
jdkVersion: JdkVersions.ProvidedJdk,
@@ -213,7 +213,7 @@
@DisplayName("KT-61622: common sources are attached in MPP + Android project")
@GradleAndroidTest
- fun testMppAndroidKapt(
+ open fun testMppAndroidKapt(
gradleVersion: GradleVersion,
agpVersion: String,
jdkVersion: JdkVersions.ProvidedJdk,
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIncrementalIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIncrementalIT.kt
index e15d429..4c57db9 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIncrementalIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIncrementalIT.kt
@@ -78,7 +78,7 @@
@DisplayName("incremental compilation works with dagger")
@GradleAndroidTest
- fun testAndroidDaggerIC(
+ open fun testAndroidDaggerIC(
gradleVersion: GradleVersion,
agpVersion: String,
jdkVersion: JdkVersions.ProvidedJdk,
@@ -160,7 +160,7 @@
@DisplayName("inter-project IC works with kapt")
@GradleAndroidTest
- fun testInterProjectIC(
+ open fun testInterProjectIC(
gradleVersion: GradleVersion,
agpVersion: String,
jdkVersion: JdkVersions.ProvidedJdk,
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidExternalIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidExternalIT.kt
index 1112473..5b761ab 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidExternalIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidExternalIT.kt
@@ -5,16 +5,19 @@
package org.jetbrains.kotlin.gradle.android
-import org.jetbrains.kotlin.config.LanguageVersion
-import org.jetbrains.kotlin.gradle.forceKapt4
-import org.jetbrains.kotlin.gradle.testbase.TestProject
+import org.gradle.util.GradleVersion
+import org.jetbrains.kotlin.gradle.testbase.JdkVersions
+import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.DisplayName
@DisplayName("android with kapt4 external dependencies tests")
class Kapt4AndroidExternalIT : Kapt3AndroidExternalIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
- override fun TestProject.customizeProject() {
- forceKapt4()
- }
+ @Disabled("KT-62345")
+ override fun testMppAndroidKapt(
+ gradleVersion: GradleVersion,
+ agpVersion: String,
+ jdkVersion: JdkVersions.ProvidedJdk,
+ ) {}
}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidIT.kt
index 3b8f592..520bf24 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidIT.kt
@@ -5,15 +5,9 @@
package org.jetbrains.kotlin.gradle.android
-import org.jetbrains.kotlin.gradle.forceKapt4
-import org.jetbrains.kotlin.gradle.testbase.TestProject
import org.junit.jupiter.api.DisplayName
@DisplayName("android with kapt4 tests")
class Kapt4AndroidIT : Kapt3AndroidIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
-
- override fun TestProject.customizeProject() {
- forceKapt4()
- }
}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidIncrementalIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidIncrementalIT.kt
index 07275bf..79a4696 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidIncrementalIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt4AndroidIncrementalIT.kt
@@ -5,16 +5,21 @@
package org.jetbrains.kotlin.gradle.android
-import org.jetbrains.kotlin.gradle.forceKapt4
-import org.jetbrains.kotlin.gradle.testbase.TestProject
+import org.gradle.util.GradleVersion
+import org.jetbrains.kotlin.gradle.testbase.JdkVersions
+import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.DisplayName
@DisplayName("android with kapt4 incremental build tests")
class Kapt4AndroidIncrementalIT : Kapt3AndroidIncrementalIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
- override fun TestProject.customizeProject() {
- forceKapt4()
+ @Disabled("KT-63102 Incremental compilation doesn't work in 2.0")
+ override fun testAndroidDaggerIC(gradleVersion: GradleVersion, agpVersion: String, jdkVersion: JdkVersions.ProvidedJdk) {
+ }
+
+ @Disabled("KT-63102 Incremental compilation doesn't work in 2.0")
+ override fun testInterProjectIC(gradleVersion: GradleVersion, agpVersion: String, jdkVersion: JdkVersions.ProvidedJdk) {
}
}
@@ -22,7 +27,11 @@
class Kapt4AndroidIncrementalWithoutPreciseBackupIT : Kapt3AndroidIncrementalWithoutPreciseBackupIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
- override fun TestProject.customizeProject() {
- forceKapt4()
+ @Disabled("KT-63102 Incremental compilation doesn't work in 2.0")
+ override fun testAndroidDaggerIC(gradleVersion: GradleVersion, agpVersion: String, jdkVersion: JdkVersions.ProvidedJdk) {
+ }
+
+ @Disabled("KT-63102 Incremental compilation doesn't work in 2.0")
+ override fun testInterProjectIC(gradleVersion: GradleVersion, agpVersion: String, jdkVersion: JdkVersions.ProvidedJdk) {
}
}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJvmApiTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJvmApiTest.kt
index a2ffedf..b5612c8 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJvmApiTest.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJvmApiTest.kt
@@ -14,7 +14,7 @@
import kotlin.io.path.writeText
@DisplayName("JVM API validation")
-class KotlinJvmApiTest : KGPBaseTest() {
+open class KotlinJvmApiTest : KGPBaseTest() {
@DisplayName("Kotlin compilation can be set up using APIs")
@JvmGradlePluginTests
@GradleTest
@@ -51,11 +51,7 @@
""".trimIndent()
}
- val expectedOutput = projectPath.resolve("build/fooOutput/Foo.class")
-
- build("foo") {
- assertFileExists(expectedOutput)
- }
+ build("foo")
}
}
@@ -147,7 +143,6 @@
""".trimIndent()
}
- val expectedOutputClass = projectPath.resolve("build/fooOutput/Foo.class")
val expectedOutputStubs = listOf(
projectPath.resolve("build/fooOutputStubs/Foo.java"),
projectPath.resolve("build/fooOutputStubs/Foo.kapt_metadata"),
@@ -155,7 +150,6 @@
)
build("foo") {
- assertFileExists(expectedOutputClass)
expectedOutputStubs.forEach { assertFileExists(it) }
}
}
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt
index c55e053..66ac7bb 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt
@@ -25,7 +25,6 @@
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.isInfoAsWarnings
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.isKaptKeepKdocCommentsInStubs
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.isKaptVerbose
-import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.isUseK2
import org.jetbrains.kotlin.gradle.model.builder.KaptModelBuilder
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation
@@ -123,10 +122,6 @@
return getBooleanOptionValue(BooleanOption.KAPT_KEEP_KDOC_COMMENTS_IN_STUBS)
}
- fun Project.isUseK2(): Boolean {
- return getBooleanOptionValue(BooleanOption.KAPT_USE_K2)
- }
-
fun Project.classLoadersCacheSize(): Int = findPropertySafe(CLASSLOADERS_CACHE_SIZE)?.toString()?.toInt() ?: 0
fun Project.disableClassloaderCacheForProcessors(): Set<String> {
@@ -218,7 +213,6 @@
KAPT_INFO_AS_WARNINGS("kapt.info.as.warnings", false),
KAPT_INCLUDE_COMPILE_CLASSPATH("kapt.include.compile.classpath", true),
KAPT_KEEP_KDOC_COMMENTS_IN_STUBS("kapt.keep.kdoc.comments.in.stubs", true),
- KAPT_USE_K2("kapt.use.k2", false),
}
}
@@ -538,7 +532,6 @@
pluginOptions += SubpluginOption("keepKdocCommentsInStubs", "${project.isKaptKeepKdocCommentsInStubs()}")
pluginOptions += SubpluginOption("showProcessorTimings", "${kaptExtension.showProcessorStats}")
pluginOptions += SubpluginOption("detectMemoryLeaks", kaptExtension.detectMemoryLeaks)
- pluginOptions += SubpluginOption("useK2", "${project.isUseK2()}")
pluginOptions += SubpluginOption("infoAsWarnings", "${project.isInfoAsWarnings()}")
pluginOptions += FilesSubpluginOption("stubs", kaptStubsDir)
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt
index 92c4ca9..9cb528d 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt
@@ -29,6 +29,7 @@
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptionsDefault
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptionsHelper
+import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilerArgumentsProducer.CreateCompilerArgumentsContext
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilerArgumentsProducer.CreateCompilerArgumentsContext.Companion.create
import org.jetbrains.kotlin.gradle.report.BuildReportMode
@@ -66,9 +67,6 @@
@get:Input
abstract val verbose: Property<Boolean>
- @get:Input
- abstract val useK2Kapt: Property<Boolean>
-
/**
* Changes in this additional sources will trigger stubs regeneration,
* but the sources themselves will not be used to find kapt annotations and generate stubs.
@@ -129,10 +127,6 @@
args.verbose = verbose.get()
args.destinationAsFile = destinationDirectory.get().asFile
-
- if (useK2Kapt.get()) {
- args.freeArgs += "-Xuse-kapt4"
- }
}
pluginClasspath { args ->
@@ -154,5 +148,5 @@
}
override fun isIncrementalCompilationEnabled(): Boolean =
- super.isIncrementalCompilationEnabled() && !useK2Kapt.get() && ("-Xuse-kapt4" !in compilerOptions.freeCompilerArgs.get())
+ super.isIncrementalCompilationEnabled() && compilerOptions.languageVersion.getOrElse(KotlinVersion.DEFAULT) < KotlinVersion.KOTLIN_2_0
}
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt
index 3571ec8..e525891 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KaptGenerateStubsConfig.kt
@@ -16,7 +16,6 @@
import org.jetbrains.kotlin.gradle.internal.*
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.KAPT_SUBPLUGIN_ID
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.isIncludeCompileClasspath
-import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin.Companion.isUseK2
import org.jetbrains.kotlin.gradle.plugin.KaptExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationInfo
@@ -50,7 +49,6 @@
configureTask { task ->
task.verbose.set(KaptTask.queryKaptVerboseProperty(project))
task.pluginOptions.add(buildOptions(kaptExtension, task))
- task.useK2Kapt.value(project.isUseK2()).finalizeValueOnRead()
if (!isIncludeCompileClasspath(kaptExtension)) {
task.onlyIf {
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-dagger-maven-example/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-dagger-maven-example/pom.xml
index e74ba70..da6e746 100644
--- a/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-dagger-maven-example/pom.xml
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-dagger-maven-example/pom.xml
@@ -11,7 +11,7 @@
<properties>
<junit.version>4.13.1</junit.version>
- <dagger.version>2.9</dagger.version>
+ <dagger.version>2.50</dagger.version>
<main.class>coffee.CoffeeApp</main.class>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-enable-extensions-kapt-allopen/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-enable-extensions-kapt-allopen/pom.xml
index b3571e5..96ae273 100644
--- a/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-enable-extensions-kapt-allopen/pom.xml
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-enable-extensions-kapt-allopen/pom.xml
@@ -11,7 +11,7 @@
<properties>
<junit.version>4.13.1</junit.version>
- <dagger.version>2.9</dagger.version>
+ <dagger.version>2.50</dagger.version>
<main.class>coffee.CoffeeApp</main.class>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-kapt-allopen/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-kapt-allopen/pom.xml
index 21fb411..1b5ec06 100644
--- a/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-kapt-allopen/pom.xml
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java8/test-kapt-allopen/pom.xml
@@ -11,7 +11,7 @@
<properties>
<junit.version>4.13.1</junit.version>
- <dagger.version>2.9</dagger.version>
+ <dagger.version>2.50</dagger.version>
<main.class>coffee.CoffeeApp</main.class>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
diff --git a/plugins/kapt3/kapt3-cli/src/KaptCli.kt b/plugins/kapt3/kapt3-cli/src/KaptCli.kt
index 8c8475d..8c909fc 100644
--- a/plugins/kapt3/kapt3-cli/src/KaptCli.kt
+++ b/plugins/kapt3/kapt3-cli/src/KaptCli.kt
@@ -107,7 +107,6 @@
}
KaptCliOption.APT_MODE_OPTION -> aptModePassed = true
KaptCliOption.VERBOSE_MODE_OPTION -> kaptVerboseModePassed = true
- KaptCliOption.USE_K2 -> transformed.add("-Xuse-kapt4")
else -> {}
}
@@ -115,7 +114,7 @@
}
if (!aptModePassed) {
- val isK2 = "-Xuse-kapt4" in transformed && ("-Xuse-k2" in transformed ||
+ val isK2 = ("-Xuse-k2" in transformed ||
transformed.any { it.startsWith("-language-version=2") } ||
transformed.lastIndexOf("-language-version").takeIf { it >= 0 }
?.let { transformed.getOrNull(it + 1)?.startsWith('2') } == true)
diff --git a/plugins/kapt3/kapt3-cli/src/KaptCliOption.kt b/plugins/kapt3/kapt3-cli/src/KaptCliOption.kt
index f244f5e..86f757a 100644
--- a/plugins/kapt3/kapt3-cli/src/KaptCliOption.kt
+++ b/plugins/kapt3/kapt3-cli/src/KaptCliOption.kt
@@ -214,13 +214,6 @@
"Keep KDoc comments in stubs"
),
- USE_K2(
- "useK2",
- "true | false",
- "Use K2",
- cliToolOption = CliToolOption("-Kapt-use-k2", FLAG)
- ),
-
DETECT_MEMORY_LEAKS_OPTION("detectMemoryLeaks", "true | false", "Detect memory leaks in annotation processors"),
INCLUDE_COMPILE_CLASSPATH(
"includeCompileClasspath",
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/argfile/kaptArgs.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/argfile/kaptArgs.txt
index 5f6166c..da9f468 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/argfile/kaptArgs.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/argfile/kaptArgs.txt
@@ -1,5 +1,4 @@
-language-version 2.0
--Xuse-kapt4
-Kapt-mode=stubsAndApt
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/compileModeUnsupported/build.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/compileModeUnsupported/build.txt
index 8d6c0d7..91ff20d 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/compileModeUnsupported/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/compileModeUnsupported/build.txt
@@ -1,7 +1,6 @@
# kapt
-language-version 2.0
-Xsuppress-version-warnings
--Xuse-kapt4
-Kapt-mode=compile
../simple/Test.kt
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/correctErrorTypesOn/build.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/correctErrorTypesOn/build.txt
index 97db889..d94a9c8 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/correctErrorTypesOn/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/correctErrorTypesOn/build.txt
@@ -12,7 +12,6 @@
# kapt
-language-version 2.0
--Xuse-kapt4
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/defaultPackage/build.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/defaultPackage/build.txt
index cad0d62..40eac7b 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/defaultPackage/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/defaultPackage/build.txt
@@ -17,7 +17,6 @@
# kapt
-language-version 2.0
--Xuse-kapt4
-Kapt-mode=stubsAndApt
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kaptUseK2Flag/build.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kaptUseK2Flag/build.txt
index 14d960b..91ff20d 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kaptUseK2Flag/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kaptUseK2Flag/build.txt
@@ -1,7 +1,6 @@
# kapt
-language-version 2.0
-Xsuppress-version-warnings
--Kapt-use-k2=true
-Kapt-mode=compile
../simple/Test.kt
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kotlinFileGeneration/build.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kotlinFileGeneration/build.txt
index 8daf772..f9cff86 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kotlinFileGeneration/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kotlinFileGeneration/build.txt
@@ -17,7 +17,6 @@
# kapt
-language-version 2.0
--Xuse-kapt4
-Kapt-mode=stubsAndApt
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kotlinFileGenerationDefaultOutput/build.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kotlinFileGenerationDefaultOutput/build.txt
index aecd364..ee68005 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kotlinFileGenerationDefaultOutput/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kotlinFileGenerationDefaultOutput/build.txt
@@ -20,7 +20,6 @@
# kapt
-language-version 2.0
--Xuse-kapt4
-Kapt-mode=stubsAndApt
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
@@ -34,7 +33,6 @@
# kotlinc
-language-version 2.0
--Xuse-kapt4
-d output/classes
-cp output/classes:output/ap:%KOTLIN_STDLIB%
Test.kt
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kt33800/build.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kt33800/build.txt
index 4ac429b..f3c16ef 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kt33800/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/kt33800/build.txt
@@ -21,7 +21,6 @@
# kapt
-language-version 2.0
--Xuse-kapt4
-Kapt-mode=stubsAndApt
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/multipass/build.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/multipass/build.txt
index 7796317..62ce2f8 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/multipass/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/multipass/build.txt
@@ -13,7 +13,6 @@
# kapt
-language-version 2.0
--Xuse-kapt4
-Kapt-mode=stubsAndApt
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/separateStubAptCompilation/build.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/separateStubAptCompilation/build.txt
index 300ddcb..669e438 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/separateStubAptCompilation/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/separateStubAptCompilation/build.txt
@@ -21,7 +21,6 @@
# kapt
-language-version 2.0
--Xuse-kapt4
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
@@ -33,7 +32,6 @@
# kapt
-language-version 2.0
--Xuse-kapt4
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/simple/build.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/simple/build.txt
index f6de1d6..05ad916 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/simple/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/simple/build.txt
@@ -17,7 +17,6 @@
# kapt
-language-version 2.0
--Xuse-kapt4
-Kapt-mode=stubsAndApt
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
diff --git a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/withoutService/build.txt b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/withoutService/build.txt
index e307618..d6a9562 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration-kapt4/withoutService/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration-kapt4/withoutService/build.txt
@@ -21,7 +21,6 @@
# kapt
-language-version 2.0
--Xuse-kapt4
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/argfile/apKotlincArgs.txt b/plugins/kapt3/kapt3-cli/testData/integration/argfile/apKotlincArgs.txt
index 0587b56..11fd970 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/argfile/apKotlincArgs.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/argfile/apKotlincArgs.txt
@@ -1,3 +1,4 @@
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/Processor.kt
\ No newline at end of file
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/argfile/kaptArgs.txt b/plugins/kapt3/kapt3-cli/testData/integration/argfile/kaptArgs.txt
index 68cf0ee..85b3d5c 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/argfile/kaptArgs.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/argfile/kaptArgs.txt
@@ -1,3 +1,4 @@
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/correctErrorTypesOff/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/correctErrorTypesOff/build.txt
index 3a9c302..7cd08eb 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/correctErrorTypesOff/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/correctErrorTypesOff/build.txt
@@ -14,11 +14,13 @@
output/sources
# kotlinc
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/Processor.kt
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
@@ -41,7 +43,6 @@
# after
Return code: 1
-warning: kapt currently doesn't support language version 2.0+. Falling back to 1.9.
error: error: NonExistentClass type occurred
Test.kt:4:8: error: unresolved reference: generated
import generated.Property
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/correctErrorTypesOn/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/correctErrorTypesOn/build.txt
index 5cc53e3..606837e 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/correctErrorTypesOn/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/correctErrorTypesOn/build.txt
@@ -6,11 +6,13 @@
output/sources
# kotlinc
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/Processor.kt
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/defaultPackage/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/defaultPackage/build.txt
index 08ef3b7..4a11108 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/defaultPackage/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/defaultPackage/build.txt
@@ -10,11 +10,13 @@
output/sources
# kotlinc
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/Processor.kt
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/fallback/Test.kt b/plugins/kapt3/kapt3-cli/testData/integration/fallback/Test.kt
deleted file mode 100644
index a23c670..0000000
--- a/plugins/kapt3/kapt3-cli/testData/integration/fallback/Test.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-package test
-
-import apt.Anno
-import generated.Test as TestGenerated
-
-@Anno
-class Test {
- @field:Anno
- val property: String = ""
-
- @Anno
- fun function() {
-
- }
-}
-
-fun main() {
- println("Generated class: " + TestGenerated::class.java.name)
-}
\ No newline at end of file
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/fallback/ap/META-INF/services/javax.annotation.processing.Processor b/plugins/kapt3/kapt3-cli/testData/integration/fallback/ap/META-INF/services/javax.annotation.processing.Processor
deleted file mode 100644
index 078558e..0000000
--- a/plugins/kapt3/kapt3-cli/testData/integration/fallback/ap/META-INF/services/javax.annotation.processing.Processor
+++ /dev/null
@@ -1 +0,0 @@
-apt.SampleApt
\ No newline at end of file
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/fallback/ap/Processor.kt b/plugins/kapt3/kapt3-cli/testData/integration/fallback/ap/Processor.kt
deleted file mode 100644
index 22afdb9..0000000
--- a/plugins/kapt3/kapt3-cli/testData/integration/fallback/ap/Processor.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-package apt
-
-import javax.annotation.processing.*
-import javax.lang.model.SourceVersion
-import javax.lang.model.element.TypeElement
-import javax.tools.Diagnostic.Kind.*
-import javax.tools.StandardLocation
-
-annotation class Anno
-
-class SampleApt : AbstractProcessor() {
- override fun process(annotations: Set<TypeElement>, roundEnv: RoundEnvironment): Boolean {
- val writeKotlinFiles = processingEnv.options["kapt.test.writeKotlinFiles"] == "true"
-
- for (element in roundEnv.getElementsAnnotatedWith(Anno::class.java)) {
- val generatedSimpleName = element.simpleName.toString().capitalize()
-
- val file = when (writeKotlinFiles) {
- true -> processingEnv.filer.createResource(StandardLocation.SOURCE_OUTPUT, "generated", "$generatedSimpleName.kt")
- false -> processingEnv.filer.createSourceFile("generated.$generatedSimpleName")
- }
-
- file.openWriter().use {
- it.write("package generated;\npublic class $generatedSimpleName {}")
- }
- }
-
- return true
- }
-
- override fun getSupportedOptions() = setOf("kapt.test.writeKotlinFiles")
- override fun getSupportedSourceVersion() = SourceVersion.RELEASE_8
- override fun getSupportedAnnotationTypes() = setOf("apt.Anno")
-}
\ No newline at end of file
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/fallback/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/fallback/build.txt
deleted file mode 100644
index a510c56..0000000
--- a/plugins/kapt3/kapt3-cli/testData/integration/fallback/build.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-# mkdir
-output/stubs
-output/classes
-output/javaClasses
-output/sources
-output/stubsAlt
-output/classesAlt
-output/javaClassesAlt
-output/sourcesAlt
-
-# kotlinc
--language-version 2.0
--cp %KOTLIN_STDLIB%
--d output/ap.jar
-ap/Processor.kt
-
-# copy
-ap/META-INF/services/javax.annotation.processing.Processor
-output/ap/META-INF/services/javax.annotation.processing.Processor
-
-# kapt
--Xuse-k2
--Kapt-stubs=output/stubs
--Kapt-classes=output/classes
--Kapt-sources=output/sources
--Kapt-classpath=output/ap
--d output/classes
--cp output/ap.jar:%KOTLIN_STDLIB%
-Test.kt
-
-# javac
--cp output/ap.jar
--d output/javaClasses
--proc:none
-output/sources/generated/Function.java
-output/sources/generated/Property.java
-output/sources/generated/Test.java
-
-# kapt
--language-version 2.0
--Kapt-stubs=output/stubsAlt
--Kapt-classes=output/classesAlt
--Kapt-sources=output/sourcesAlt
--Kapt-classpath=output/ap
--d output/classesAlt
--cp output/ap.jar:%KOTLIN_STDLIB%
-Test.kt
-
-# output
-warning: kapt currently doesn't support language version 2.0+. Falling back to 1.9.
-
-# java
--cp output/classes:output/javaClasses:output/ap.jar:%KOTLIN_STDLIB%
-test.TestKt
-
-# javac
--cp output/ap.jar
--d output/javaClassesAlt
--proc:none
-output/sourcesAlt/generated/Function.java
-output/sourcesAlt/generated/Property.java
-output/sourcesAlt/generated/Test.java
-
-# java
--cp output/classes:output/javaClassesAlt:output/ap.jar:%KOTLIN_STDLIB%
-test.TestKt
-
-# after
-Generated class: generated.Test
\ No newline at end of file
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGeneration/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGeneration/build.txt
index d552d57..f343d48 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGeneration/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGeneration/build.txt
@@ -6,6 +6,7 @@
output/kotlin-sources
# kotlinc
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/Processor.kt
@@ -15,6 +16,7 @@
output/ap/META-INF/services/javax.annotation.processing.Processor
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGenerationCorrectErrorTypes/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGenerationCorrectErrorTypes/build.txt
index 3feb71f..f3aecd6 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGenerationCorrectErrorTypes/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGenerationCorrectErrorTypes/build.txt
@@ -10,6 +10,7 @@
output/kotlin-sources
# kotlinc
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/Processor.kt
@@ -19,6 +20,7 @@
output/ap/META-INF/services/javax.annotation.processing.Processor
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGenerationDefaultOutput/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGenerationDefaultOutput/build.txt
index b555443..85fe46b 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGenerationDefaultOutput/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGenerationDefaultOutput/build.txt
@@ -13,11 +13,13 @@
output/sources
# kotlinc
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/Processor.kt
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/kt33800/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/kt33800/build.txt
index fce839b..dda98f8 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/kt33800/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/kt33800/build.txt
@@ -10,6 +10,7 @@
output/sources
# kotlinc
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/Processor.kt
@@ -19,6 +20,7 @@
output/ap/META-INF/services/javax.annotation.processing.Processor
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/multipass/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/multipass/build.txt
index 9cb0559..335dfd2d 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/multipass/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/multipass/build.txt
@@ -6,11 +6,13 @@
output/sources
# kotlinc
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/processors.kt
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/separateStubAptCompilation/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/separateStubAptCompilation/build.txt
index 6abb00d..b988f65 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/separateStubAptCompilation/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/separateStubAptCompilation/build.txt
@@ -14,11 +14,13 @@
output/sources
# kotlinc
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/Processor.kt
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
@@ -29,6 +31,7 @@
Test.kt
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
@@ -40,6 +43,7 @@
Test.kt
# kotlinc
+-language-version 1.9
-d output/classes
-cp output/ap:%KOTLIN_STDLIB%
output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/simple/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/simple/build.txt
index 6ec1cd7..0ef1f62 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/simple/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/simple/build.txt
@@ -6,6 +6,7 @@
output/sources
# kotlinc
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/Processor.kt
@@ -15,6 +16,7 @@
output/ap/META-INF/services/javax.annotation.processing.Processor
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/testData/integration/withoutService/build.txt b/plugins/kapt3/kapt3-cli/testData/integration/withoutService/build.txt
index 741b60e..fc1ea69 100644
--- a/plugins/kapt3/kapt3-cli/testData/integration/withoutService/build.txt
+++ b/plugins/kapt3/kapt3-cli/testData/integration/withoutService/build.txt
@@ -14,11 +14,13 @@
output/sources
# kotlinc
+-language-version 1.9
-cp %KOTLIN_STDLIB%
-d output/ap
ap/Processor.kt
# kapt
+-language-version 1.9
-Kapt-stubs=output/stubs
-Kapt-classes=output/classes
-Kapt-sources=output/sources
diff --git a/plugins/kapt3/kapt3-cli/tests-gen/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java b/plugins/kapt3/kapt3-cli/tests-gen/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java
index b775721..9f92cee 100644
--- a/plugins/kapt3/kapt3-cli/tests-gen/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java
+++ b/plugins/kapt3/kapt3-cli/tests-gen/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java
@@ -49,12 +49,6 @@
}
@Test
- @TestMetadata("fallback")
- public void testFallback() throws Exception {
- runTest("plugins/kapt3/kapt3-cli/testData/integration/fallback/");
- }
-
- @Test
@TestMetadata("kotlinFileGeneration")
public void testKotlinFileGeneration() throws Exception {
runTest("plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGeneration/");
diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt
index 712c184..8266c0c 100644
--- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt
+++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Plugin.kt
@@ -123,7 +123,6 @@
STRICT_MODE_OPTION -> setFlag(KaptFlag.STRICT, value)
STRIP_METADATA_OPTION -> setFlag(KaptFlag.STRIP_METADATA, value)
KEEP_KDOC_COMMENTS_IN_STUBS -> setFlag(KaptFlag.KEEP_KDOC_COMMENTS_IN_STUBS, value)
- USE_K2 -> {}
SHOW_PROCESSOR_STATS -> setFlag(KaptFlag.SHOW_PROCESSOR_STATS, value)
DUMP_PROCESSOR_STATS -> processorsStatsReportFile = File(value)
diff --git a/plugins/kapt4/src/org/jetbrains/kotlin/kapt4/Kapt4AnalysisHandlerExtension.kt b/plugins/kapt4/src/org/jetbrains/kotlin/kapt4/Kapt4AnalysisHandlerExtension.kt
index 2599992..e041de7 100644
--- a/plugins/kapt4/src/org/jetbrains/kotlin/kapt4/Kapt4AnalysisHandlerExtension.kt
+++ b/plugins/kapt4/src/org/jetbrains/kotlin/kapt4/Kapt4AnalysisHandlerExtension.kt
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.kapt4
+import com.intellij.openapi.extensions.ExtensionPoint
import com.intellij.openapi.util.Disposer
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiJavaFile
@@ -12,6 +13,7 @@
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeTokenProvider
import org.jetbrains.kotlin.analysis.api.standalone.KtAlwaysAccessibleLifetimeTokenProvider
import org.jetbrains.kotlin.analysis.api.standalone.buildStandaloneAnalysisAPISession
+import org.jetbrains.kotlin.analysis.project.structure.KtCompilerPluginsProvider
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
@@ -22,6 +24,7 @@
import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar
import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.config.CommonConfigurationKeys.USE_FIR
+import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor
import org.jetbrains.kotlin.fir.extensions.FirAnalysisHandlerExtension
import org.jetbrains.kotlin.kapt3.EfficientProcessorLoader
import org.jetbrains.kotlin.kapt3.KAPT_OPTIONS
@@ -75,10 +78,23 @@
buildKtModuleProviderByCompilerConfiguration(updatedConfiguration)
registerProjectService(KtLifetimeTokenProvider::class.java, KtAlwaysAccessibleLifetimeTokenProvider())
+ registerProjectService(KtCompilerPluginsProvider::class.java, StandaloneCompilerPluginsProvider())
}
val (module, files) = standaloneAnalysisAPISession.modulesWithFiles.entries.single()
+ val extensionStorage = CompilerPluginRegistrar.ExtensionStorage()
+ for (registrar in configuration.getList(CompilerPluginRegistrar.COMPILER_PLUGIN_REGISTRARS)) {
+ with(registrar) { extensionStorage.registerExtensions(configuration) }
+ }
+ for ((extensionPoint, extensions) in extensionStorage.registeredExtensions) {
+ for (extension in extensions) {
+ @Suppress("TestOnlyProblems")
+ module.project.extensionArea.getExtensionPointIfRegistered<Any>(extensionPoint.extensionPointName.name)
+ ?.registerExtension(extension, module.project)
+ }
+ }
+
optionsBuilder.apply {
projectBaseDir = projectBaseDir ?: module.project.basePath?.let(::File)
val contentRoots = configuration[CLIConfigurationKeys.CONTENT_ROOTS] ?: emptyList()
diff --git a/plugins/kapt4/src/org/jetbrains/kotlin/kapt4/StandaloneCompilerPluginsProvider.kt b/plugins/kapt4/src/org/jetbrains/kotlin/kapt4/StandaloneCompilerPluginsProvider.kt
new file mode 100644
index 0000000..641e942
--- /dev/null
+++ b/plugins/kapt4/src/org/jetbrains/kotlin/kapt4/StandaloneCompilerPluginsProvider.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
+ */
+
+package org.jetbrains.kotlin.kapt4
+
+import org.jetbrains.kotlin.analysis.project.structure.KtCompilerPluginsProvider
+import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
+import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor
+import org.jetbrains.kotlin.extensions.internal.InternalNonStableExtensionPoints
+import org.jetbrains.kotlin.resolve.extensions.AssignResolutionAltererExtension
+
+internal class StandaloneCompilerPluginsProvider : KtCompilerPluginsProvider() {
+ override fun <T : Any> getRegisteredExtensions(module: KtSourceModule, extensionType: ProjectExtensionDescriptor<T>): List<T> {
+ return extensionType.getInstances(module.project)
+ }
+
+ @OptIn(InternalNonStableExtensionPoints::class)
+ override fun isPluginOfTypeRegistered(module: KtSourceModule, pluginType: CompilerPluginType): Boolean {
+ val extension = when (pluginType) {
+ CompilerPluginType.ASSIGNMENT -> AssignResolutionAltererExtension
+ else -> return false
+ }
+ return extension.getInstances(module.project).isNotEmpty()
+ }
+}
\ No newline at end of file