diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index d49b4c45335..3cc2837fd99 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -75,6 +75,12 @@
+
+
+
+
+
+
@@ -91,6 +97,12 @@
+
+
+
+
+
+
@@ -193,6 +205,12 @@
+
+
+
+
+
+
@@ -203,6 +221,12 @@
+
+
+
+
+
+
@@ -235,6 +259,12 @@
+
+
+
+
+
+
@@ -271,6 +301,12 @@
+
+
+
+
+
+
@@ -307,6 +343,12 @@
+
+
+
+
+
+
@@ -343,6 +385,12 @@
+
+
+
+
+
+
@@ -375,6 +423,12 @@
+
+
+
+
+
+
@@ -411,6 +465,12 @@
+
+
+
+
+
+
@@ -447,6 +507,12 @@
+
+
+
+
+
+
@@ -463,6 +529,12 @@
+
+
+
+
+
+
@@ -489,6 +561,12 @@
+
+
+
+
+
+
@@ -515,6 +593,12 @@
+
+
+
+
+
+
@@ -541,6 +625,12 @@
+
+
+
+
+
+
@@ -557,6 +647,12 @@
+
+
+
+
+
+
@@ -593,6 +689,12 @@
+
+
+
+
+
+
@@ -615,6 +717,12 @@
+
+
+
+
+
+
@@ -663,6 +771,12 @@
+
+
+
+
+
+
@@ -705,6 +819,12 @@
+
+
+
+
+
+
@@ -747,6 +867,12 @@
+
+
+
+
+
+
@@ -757,6 +883,12 @@
+
+
+
+
+
+
@@ -799,6 +931,12 @@
+
+
+
+
+
+
@@ -831,6 +969,12 @@
+
+
+
+
+
+
@@ -893,6 +1037,12 @@
+
+
+
+
+
+
@@ -925,6 +1075,12 @@
+
+
+
+
+
+
@@ -941,6 +1097,12 @@
+
+
+
+
+
+
@@ -977,6 +1139,12 @@
+
+
+
+
+
+
@@ -1049,6 +1217,12 @@
+
+
+
+
+
+
@@ -1095,6 +1269,12 @@
+
+
+
+
+
+
@@ -1539,6 +1719,12 @@
+
+
+
+
+
+
@@ -1687,6 +1873,12 @@
+
+
+
+
+
+
diff --git a/libraries/tools/kotlin-gradle-plugin-api/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-api/build.gradle.kts
index fc65068da9c..1ee0832d13d 100644
--- a/libraries/tools/kotlin-gradle-plugin-api/build.gradle.kts
+++ b/libraries/tools/kotlin-gradle-plugin-api/build.gradle.kts
@@ -7,5 +7,5 @@ dependencies {
api(project(":native:kotlin-native-utils"))
api(project(":kotlin-project-model"))
implementation(project(":kotlin-tooling-core"))
- compileOnly("com.android.tools.build:gradle:3.4.0")
+ compileOnly("com.android.tools.build:gradle:3.6.4")
}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts
index bfda38948fb..0e99fa32afe 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts
@@ -97,7 +97,7 @@ fun Test.includeTestsWithPattern(include: Boolean, patterns: (MutableSet
}
fun Test.advanceGradleVersion() {
- val gradleVersionForTests = "7.0"
+ val gradleVersionForTests = "7.0.2"
systemProperty("kotlin.gradle.version.for.tests", gradleVersionForTests)
}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt
index 7f16c38123f..83893a870ed 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt
@@ -4,6 +4,7 @@ import org.gradle.api.logging.LogLevel
import org.gradle.api.logging.configuration.WarningMode
import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.internal.ensureParentDirsCreated
+import org.jetbrains.kotlin.gradle.testbase.TestVersions
import org.jetbrains.kotlin.gradle.tooling.BuildKotlinToolingMetadataTask
import org.jetbrains.kotlin.gradle.util.*
import org.jetbrains.kotlin.test.util.KtTestUtil
@@ -16,10 +17,160 @@ import kotlin.test.assertNotNull
import kotlin.test.assertNull
import kotlin.test.assertTrue
-open class KotlinAndroid36GradleIT : KotlinAndroid34GradleIT() {
+open class KotlinAndroid36GradleIT : KotlinAndroid3GradleIT() {
override val androidGradlePluginVersion: AGPVersion
get() = AGPVersion.v3_6_0
+ // AGP 3.+ is not working well with Gradle 7+
+ override val defaultGradleVersion: GradleVersionRequired
+ get() = GradleVersionRequired.Until(TestVersions.Gradle.G_6_9)
+
+ @Test
+ fun testKaptUsingApOptionProvidersAsNestedInputOutput() = with(Project("AndroidProject")) {
+ setupWorkingDir()
+
+ gradleBuildScript(subproject = "Android").appendText(
+ """
+
+ apply plugin: 'kotlin-kapt'
+
+ class MyNested implements org.gradle.process.CommandLineArgumentProvider {
+
+ @InputFile
+ File inputFile = null
+
+ @Override
+ Iterable asArguments() {
+ // Read the arguments from a file, because changing them in a build script is treated as an
+ // implementation change by Gradle:
+ return [new File('args.txt').text]
+ }
+ }
+
+ def nested = new MyNested()
+ nested.inputFile = file("${'$'}projectDir/in.txt")
+
+ android.applicationVariants.all {
+ it.javaCompileOptions.annotationProcessorOptions.compilerArgumentProviders.add(nested)
+ }
+ """.trimIndent()
+ )
+
+ File(projectDir, "Android/in.txt").appendText("1234")
+ File(projectDir, "args.txt").appendText("1234")
+
+ val kaptTasks = listOf(":Android:kaptFlavor1DebugKotlin")
+ val javacTasks = listOf(":Android:compileFlavor1DebugJavaWithJavac")
+
+ val buildTasks = (kaptTasks + javacTasks).toTypedArray()
+
+ build(*buildTasks) {
+ assertSuccessful()
+ assertTasksExecuted(kaptTasks + javacTasks)
+ }
+
+ File(projectDir, "Android/in.txt").appendText("5678")
+
+ build(*buildTasks) {
+ assertSuccessful()
+ assertTasksExecuted(kaptTasks)
+ assertTasksUpToDate(javacTasks)
+ }
+
+ // Changing only the annotation provider arguments should not trigger the tasks to run, as the arguments may be outputs,
+ // internals or neither:
+ File(projectDir, "args.txt").appendText("5678")
+
+ build(*buildTasks) {
+ assertSuccessful()
+ assertTasksUpToDate(javacTasks + kaptTasks)
+ }
+ }
+
+ @Test
+ fun testAgpNestedArgsNotEvaluatedDuringConfiguration() = with(Project("AndroidProject")) {
+ setupWorkingDir()
+
+ gradleBuildScript(subproject = "Android").appendText(
+ """
+
+ apply plugin: 'kotlin-kapt'
+
+ class MyNested implements org.gradle.process.CommandLineArgumentProvider {
+ @Override
+ Iterable asArguments() {
+ throw new RuntimeException("This should not be invoked during configuration.")
+ }
+ }
+
+ def nested = new MyNested()
+
+ android.applicationVariants.all {
+ it.javaCompileOptions.annotationProcessorOptions.compilerArgumentProviders.add(nested)
+ }
+ """.trimIndent()
+ )
+
+ build(":Android:kaptFlavor1DebugKotlin", "--dry-run") {
+ assertSuccessful()
+ }
+
+ build(
+ ":Android:kaptFlavor1DebugKotlin", "--dry-run",
+ options = defaultBuildOptions().copy(kaptOptions = KaptOptions(verbose = false, useWorkers = false))
+ ) {
+ assertSuccessful()
+ }
+ }
+
+ @Test
+ fun testOmittedStdlibVersion() = Project("AndroidProject").run {
+ setupWorkingDir()
+
+ gradleBuildScript("Lib").modify {
+
+ it.checkedReplace(
+ "kotlin-stdlib:\$kotlin_version",
+ "kotlin-stdlib"
+ ) + "\n" +
+ """
+ apply plugin: 'maven-publish'
+
+ android {
+ defaultPublishConfig 'flavor1Debug'
+ }
+
+ afterEvaluate {
+ publishing {
+ publications {
+ flavorDebug(MavenPublication) {
+ from components.flavor1Debug
+
+ group = 'com.example'
+ artifactId = 'flavor1Debug'
+ version = '1.0'
+ }
+ }
+ repositories {
+ maven {
+ url = "file://${'$'}buildDir/repo"
+ }
+ }
+ }
+ }
+ """.trimIndent()
+ }
+
+ build(":Lib:assembleFlavor1Debug", ":Lib:publish") {
+ assertSuccessful()
+ assertTasksExecuted(":Lib:compileFlavor1DebugKotlin", ":Lib:publishFlavorDebugPublicationToMavenRepository")
+ val pomLines = File(projectDir, "Lib/build/repo/com/example/flavor1Debug/1.0/flavor1Debug-1.0.pom").readLines()
+ val stdlibVersionLineNumber = pomLines.indexOfFirst { "kotlin-stdlib" in it } + 1
+ val versionLine = pomLines[stdlibVersionLineNumber]
+ assertTrue { "${defaultBuildOptions().kotlinVersion}" in versionLine }
+ }
+ }
+
@Test
fun testAndroidMppSourceSets(): Unit = with(
Project("new-mpp-android-source-sets")
@@ -473,7 +624,7 @@ open class KotlinAndroid70GradleIT : KotlinAndroid36GradleIT() {
get() = AGPVersion.v7_0_0
override val defaultGradleVersion: GradleVersionRequired
- get() = GradleVersionRequired.AtLeast("7.0")
+ get() = GradleVersionRequired.AtLeast(TestVersions.Gradle.G_7_0)
override fun defaultBuildOptions(): BuildOptions {
val javaHome = File(System.getProperty("jdk11Home") ?: error("jdk11Home not specified"))
@@ -603,194 +754,7 @@ open class KotlinAndroid71GradleIT : KotlinAndroid70GradleIT() {
}
}
-open class KotlinAndroid34GradleIT : KotlinAndroid3GradleIT() {
- override val androidGradlePluginVersion: AGPVersion
- get() = AGPVersion.v3_4_1
-
- // AGP 3.4.1 is not working with Gradle 7+
- override val defaultGradleVersion: GradleVersionRequired
- get() = GradleVersionRequired.Until("6.8.4")
-
- @Test
- fun testKaptUsingApOptionProvidersAsNestedInputOutput() = with(Project("AndroidProject")) {
- setupWorkingDir()
-
- gradleBuildScript(subproject = "Android").appendText(
- """
-
- apply plugin: 'kotlin-kapt'
-
- class MyNested implements org.gradle.process.CommandLineArgumentProvider {
-
- @InputFile
- File inputFile = null
-
- @Override
- Iterable asArguments() {
- // Read the arguments from a file, because changing them in a build script is treated as an
- // implementation change by Gradle:
- return [new File('args.txt').text]
- }
- }
-
- def nested = new MyNested()
- nested.inputFile = file("${'$'}projectDir/in.txt")
-
- android.applicationVariants.all {
- it.javaCompileOptions.annotationProcessorOptions.compilerArgumentProviders.add(nested)
- }
- """.trimIndent()
- )
-
- File(projectDir, "Android/in.txt").appendText("1234")
- File(projectDir, "args.txt").appendText("1234")
-
- val kaptTasks = listOf(":Android:kaptFlavor1DebugKotlin")
- val javacTasks = listOf(":Android:compileFlavor1DebugJavaWithJavac")
-
- val buildTasks = (kaptTasks + javacTasks).toTypedArray()
-
- build(*buildTasks) {
- assertSuccessful()
- assertTasksExecuted(kaptTasks + javacTasks)
- }
-
- File(projectDir, "Android/in.txt").appendText("5678")
-
- build(*buildTasks) {
- assertSuccessful()
- assertTasksExecuted(kaptTasks)
- assertTasksUpToDate(javacTasks)
- }
-
- // Changing only the annotation provider arguments should not trigger the tasks to run, as the arguments may be outputs,
- // internals or neither:
- File(projectDir, "args.txt").appendText("5678")
-
- build(*buildTasks) {
- assertSuccessful()
- assertTasksUpToDate(javacTasks + kaptTasks)
- }
- }
-
- @Test
- fun testAgpNestedArgsNotEvaluatedDuringConfiguration() = with(Project("AndroidProject")) {
- setupWorkingDir()
-
- gradleBuildScript(subproject = "Android").appendText(
- """
-
- apply plugin: 'kotlin-kapt'
-
- class MyNested implements org.gradle.process.CommandLineArgumentProvider {
- @Override
- Iterable asArguments() {
- throw new RuntimeException("This should not be invoked during configuration.")
- }
- }
-
- def nested = new MyNested()
-
- android.applicationVariants.all {
- it.javaCompileOptions.annotationProcessorOptions.compilerArgumentProviders.add(nested)
- }
- """.trimIndent()
- )
-
- build(":Android:kaptFlavor1DebugKotlin", "--dry-run") {
- assertSuccessful()
- }
-
- build(
- ":Android:kaptFlavor1DebugKotlin", "--dry-run",
- options = defaultBuildOptions().copy(kaptOptions = KaptOptions(verbose = false, useWorkers = false))
- ) {
- assertSuccessful()
- }
- }
-
- @Test
- fun testOmittedStdlibVersion() = Project("AndroidProject").run {
- setupWorkingDir()
-
- gradleBuildScript("Lib").modify {
-
- it.checkedReplace(
- "kotlin-stdlib:\$kotlin_version",
- "kotlin-stdlib"
- ) + "\n" +
- """
- apply plugin: 'maven-publish'
-
- android {
- defaultPublishConfig 'flavor1Debug'
- }
-
- afterEvaluate {
- publishing {
- publications {
- flavorDebug(MavenPublication) {
- from components.flavor1Debug
-
- group = 'com.example'
- artifactId = 'flavor1Debug'
- version = '1.0'
- }
- }
- repositories {
- maven {
- url = "file://${'$'}buildDir/repo"
- }
- }
- }
- }
- """.trimIndent()
- }
-
- build(":Lib:assembleFlavor1Debug", ":Lib:publish") {
- assertSuccessful()
- assertTasksExecuted(":Lib:compileFlavor1DebugKotlin", ":Lib:publishFlavorDebugPublicationToMavenRepository")
- val pomLines = File(projectDir, "Lib/build/repo/com/example/flavor1Debug/1.0/flavor1Debug-1.0.pom").readLines()
- val stdlibVersionLineNumber = pomLines.indexOfFirst { "kotlin-stdlib" in it } + 1
- val versionLine = pomLines[stdlibVersionLineNumber]
- assertTrue { "${defaultBuildOptions().kotlinVersion}" in versionLine }
- }
- }
-}
-
abstract class KotlinAndroid3GradleIT : AbstractKotlinAndroidGradleTests() {
- @Test
- fun testApplyWithFeaturePlugin() {
- Assume.assumeTrue(
- "The com.android.feature plugin has been deprecated and removed in newer versions",
- androidGradlePluginVersion < AGPVersion.v3_6_0
- )
-
- val project = Project("AndroidProject")
-
- project.setupWorkingDir()
- File(project.projectDir, "Lib/build.gradle").modify { text ->
- // Change the applied plugin to com.android.feature
- text.replace("com.android.library", "com.android.feature")
- .replace("compileSdkVersion 22", "compileSdkVersion 26")
- .apply { assert(!equals(text)) }
- .plus("\nandroid { baseFeature true }")
- }
-
- // Check that Kotlin tasks were created for both lib and feature variants:
- val kotlinTaskNames =
- listOf("Debug").flatMap { buildType ->
- listOf("Flavor1", "Flavor2").flatMap { flavor ->
- listOf("", "Feature").map { isFeature -> ":Lib:compile$flavor$buildType${isFeature}Kotlin" }
- }
- }
-
- project.build(":Lib:assembleDebug") {
- assertSuccessful()
- assertTasksExecuted(*kotlinTaskNames.toTypedArray())
- }
- }
-
@Test
fun testAfterEvaluateOrdering() = with(Project("AndroidProject")) {
setupWorkingDir()
@@ -1100,37 +1064,6 @@ fun getSomething() = 10
}
}
- @Test
- fun testAndroidExtensionsIncremental() {
- Assume.assumeTrue(
- "Ignored for newer AGP versions because of KT-38622",
- androidGradlePluginVersion < AGPVersion.v3_6_0
- )
-
- val project = Project("AndroidExtensionsProject")
- val options = defaultBuildOptions().copy(incremental = true)
-
- project.build("assembleDebug", options = options) {
- assertSuccessful()
- val affectedSources = project.projectDir.getFilesByNames(
- "MyActivity.kt", "noLayoutUsages.kt"
- )
- val relativePaths = project.relativize(affectedSources)
- assertCompiledKotlinSources(relativePaths)
- }
-
- val activityLayout = File(project.projectDir, "app/src/main/res/layout/activity_main.xml")
- activityLayout.modify { it.replace("textView", "newTextView") }
-
- project.build("assembleDebug", options = options) {
- assertFailed()
- val affectedSources = project.projectDir.getFilesByNames("MyActivity.kt")
- val relativePaths = project.relativize(affectedSources)
- assertCompiledKotlinSources(relativePaths)
- }
- }
-
-
@Test
fun testAndroidExtensionsManyVariants() {
val project = Project("AndroidExtensionsManyVariants")
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AndroidAndJavaConsumeMppLibIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AndroidAndJavaConsumeMppLibIT.kt
index 2c5c709251d..d3ebca2e80e 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AndroidAndJavaConsumeMppLibIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AndroidAndJavaConsumeMppLibIT.kt
@@ -7,6 +7,7 @@
package org.jetbrains.kotlin.gradle
import org.jetbrains.kotlin.gradle.ResolvedVariantChecker.ResolvedVariantRequest
+import org.jetbrains.kotlin.gradle.testbase.TestVersions
import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.gradle.util.checkedReplace
import org.jetbrains.kotlin.gradle.util.modify
@@ -22,12 +23,16 @@ import java.lang.Boolean as RefBoolean
class AndroidAndJavaConsumeMppLibBuiltByGradle69IT : AndroidAndJavaConsumeMppLibIT() {
override val producerAgpVersion: AGPVersion = AGPVersion.v4_2_0
- override val producerGradleVersion: GradleVersionRequired = GradleVersionRequired.Exact("6.9")
+ override val producerGradleVersion: GradleVersionRequired = GradleVersionRequired.Exact(
+ TestVersions.Gradle.G_6_9
+ )
}
class AndroidAndJavaConsumeMppLibBuiltByGradle7IT : AndroidAndJavaConsumeMppLibIT() {
override val producerAgpVersion: AGPVersion = AGPVersion.v7_0_0
- override val producerGradleVersion: GradleVersionRequired = GradleVersionRequired.AtLeast("7.0")
+ override val producerGradleVersion: GradleVersionRequired = GradleVersionRequired.AtLeast(
+ TestVersions.Gradle.G_7_0
+ )
}
@RunWith(Parameterized::class)
@@ -62,9 +67,9 @@ abstract class AndroidAndJavaConsumeMppLibIT : BaseGradleIT() {
@Parameterized.Parameters(name = "Consumer(AGP={3}, Gradle={4}), flavors={0}, debugOnly={1}, published={2}")
fun testCases(): List> {
val consumers = listOf(
- AGPVersion.v4_2_0 to GradleVersionRequired.Exact("6.9"),
- AGPVersion.v4_2_0 to GradleVersionRequired.AtLeast("7.0"),
- AGPVersion.v7_0_0 to GradleVersionRequired.AtLeast("7.0"),
+ AGPVersion.v4_2_0 to GradleVersionRequired.Exact(TestVersions.Gradle.G_6_9),
+ AGPVersion.v4_2_0 to GradleVersionRequired.AtLeast(TestVersions.Gradle.G_7_0),
+ AGPVersion.v7_0_0 to GradleVersionRequired.AtLeast(TestVersions.Gradle.G_7_0),
)
val buildParams = listOf(
/* useFlavors, isAndroidPublishDebugOnly, isPublishedLibrary */
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt
index 5a8dffe7662..a3e0c6e88e7 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt
@@ -2,6 +2,7 @@ package org.jetbrains.kotlin.gradle
import org.gradle.api.logging.LogLevel
import org.gradle.api.logging.configuration.WarningMode
+import org.jetbrains.kotlin.gradle.testbase.TestVersions
import org.jetbrains.kotlin.gradle.util.*
import org.jetbrains.kotlin.test.util.KtTestUtil
import org.junit.Assert
@@ -10,18 +11,18 @@ import org.junit.Ignore
import org.junit.Test
import java.io.File
-class Kapt3WorkersAndroid34IT : Kapt3Android34IT() {
+class Kapt3WorkersAndroid36IT : Kapt3Android36IT() {
override fun kaptOptions(): KaptOptions =
super.kaptOptions().copy(useWorkers = true)
}
-open class Kapt3Android34IT : Kapt3AndroidIT() {
+open class Kapt3Android36IT : Kapt3AndroidIT() {
override val androidGradlePluginVersion: AGPVersion
- get() = AGPVersion.v3_4_1
+ get() = AGPVersion.v3_6_0
- // AGP 3.4 is not working with Gradle 7+
+ // AGP 3.+ is not working with Gradle 7+
override val defaultGradleVersion: GradleVersionRequired
- get() = GradleVersionRequired.Until("6.8.4")
+ get() = GradleVersionRequired.Until(TestVersions.Gradle.G_6_9)
@Test
fun testAndroidxNavigationSafeArgs() = with(Project("androidx-navigation-safe-args", directoryPrefix = "kapt2")) {
@@ -77,7 +78,7 @@ class Kapt3Android70IT : Kapt3AndroidIT() {
get() = AGPVersion.v7_0_0
override val defaultGradleVersion: GradleVersionRequired
- get() = GradleVersionRequired.AtLeast("7.0")
+ get() = GradleVersionRequired.AtLeast(TestVersions.Gradle.G_7_0)
override fun defaultBuildOptions(): BuildOptions {
val javaHome = File(System.getProperty("jdk11Home")!!)
@@ -199,7 +200,7 @@ abstract class Kapt3AndroidIT : BaseGradleIT() {
assertFileExists("app/build/generated/source/kapt/debug/org/example/kotlin/butterknife/SimpleActivity\$\$ViewBinder.java")
val butterknifeJavaClassesDir =
- "app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/example/kotlin/butterknife/"
+ "app/build/intermediates/javac/debug/classes/org/example/kotlin/butterknife/"
assertFileExists(butterknifeJavaClassesDir + "SimpleActivity\$\$ViewBinder.class")
assertFileExists("app/build/tmp/kotlin-classes/debug/org/example/kotlin/butterknife/SimpleAdapter\$ViewHolder.class")
@@ -222,7 +223,7 @@ abstract class Kapt3AndroidIT : BaseGradleIT() {
assertFileExists("app/build/generated/source/kapt/debug/com/example/dagger/kotlin/ui/HomeActivity_MembersInjector.java")
val daggerJavaClassesDir =
- "app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/example/dagger/kotlin/"
+ "app/build/intermediates/javac/debug/classes/com/example/dagger/kotlin/"
assertFileExists(daggerJavaClassesDir + "DaggerApplicationComponent.class")
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MultiplatformGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MultiplatformGradleIT.kt
index 9305c75bcaa..70f8d603c63 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MultiplatformGradleIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MultiplatformGradleIT.kt
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.gradle.internals.KOTLIN_12X_MPP_DEPRECATION_WARNING
import org.jetbrains.kotlin.gradle.plugin.EXPECTED_BY_CONFIG_NAME
import org.jetbrains.kotlin.gradle.plugin.IMPLEMENT_CONFIG_NAME
import org.jetbrains.kotlin.gradle.plugin.IMPLEMENT_DEPRECATION_WARNING
+import org.jetbrains.kotlin.gradle.testbase.TestVersions
import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.gradle.util.getFileByName
import org.jetbrains.kotlin.gradle.util.modify
@@ -318,7 +319,7 @@ class MultiplatformGradleIT : BaseGradleIT() {
fun testWithJavaDuplicatedResourcesFail() = with(
Project(
projectName = "mpp-single-jvm-target",
- gradleVersionRequirement = GradleVersionRequired.AtLeast("7.0"),
+ gradleVersionRequirement = GradleVersionRequired.AtLeast(TestVersions.Gradle.G_7_0),
minLogLevel = LogLevel.WARN
)
) {
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt
index 3b957961da0..e10c434c2e1 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.UnusedSourceSetsChecker
import org.jetbrains.kotlin.gradle.plugin.sources.METADATA_CONFIGURATION_NAME_SUFFIX
import org.jetbrains.kotlin.gradle.plugin.sources.UnsatisfiedSourceSetVisibilityException
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
+import org.jetbrains.kotlin.gradle.testbase.TestVersions
import org.jetbrains.kotlin.gradle.util.*
import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.library.KLIB_PROPERTY_SHORT_NAME
@@ -1926,7 +1927,7 @@ class NewMultiplatformIT : BaseGradleIT() {
"new-mpp-wasm-js",
// TODO: this test fails with deprecation error on Gradle <7.0
// Should be fixed via planned fixes in Kotlin/JS plugin: https://youtrack.jetbrains.com/issue/KFC-252
- gradleVersionRequirement = GradleVersionRequired.AtLeast("7.0")
+ gradleVersionRequirement = GradleVersionRequired.AtLeast(TestVersions.Gradle.G_7_0)
)) {
setupWorkingDir()
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/TestVersions.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/TestVersions.kt
index 520563d627d..e9b6847197d 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/TestVersions.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/TestVersions.kt
@@ -11,7 +11,7 @@ interface TestVersions {
object Gradle {
const val G_6_7 = "6.7.1"
const val G_6_8 = "6.8.3"
- const val G_6_9 = "6.9.1"
+ const val G_6_9 = "6.9.2"
const val G_7_0 = "7.0.2"
const val G_7_1 = "7.1.1"
const val G_7_2 = "7.2"
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt
index 78e1b59ee9a..88511a6db03 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt
@@ -18,13 +18,12 @@ class AGPVersion private constructor(private val versionNumber: VersionNumber) {
fun fromString(versionString: String): AGPVersion =
AGPVersion(VersionNumber.parse(versionString))
- val v3_4_1 = fromString("3.4.3")
val v3_6_0 = fromString("3.6.4")
val v4_1_0 = fromString("4.1.3")
- val v4_2_0 = fromString("4.2.0")
- val v7_0_0 = fromString("7.0.0-beta02")
- val v7_1_0 = fromString("7.1.0-beta03")
+ val v4_2_0 = fromString("4.2.2")
+ val v7_0_0 = fromString("7.0.4")
+ val v7_1_0 = fromString("7.1.2")
- val testedVersions = listOf(v3_4_1, v3_6_0, v4_1_0, v4_2_0, v7_0_0, v7_1_0)
+ val testedVersions = listOf(v3_6_0, v4_1_0, v4_2_0, v7_0_0, v7_1_0)
}
}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidDaggerProject/app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidDaggerProject/app/build.gradle
index d1bc214c793..45886df0053 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidDaggerProject/app/build.gradle
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/AndroidDaggerProject/app/build.gradle
@@ -1,9 +1,8 @@
buildscript {
repositories {
mavenLocal()
- maven { url 'https://maven.google.com' }
+ google()
mavenCentral()
- maven { url = uri("https://jcenter.bintray.com/") }
}
dependencies {
@@ -19,7 +18,6 @@ apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 23
- buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example.dagger.kotlin"
@@ -29,6 +27,12 @@ android {
versionName "1.0"
buildConfigField "long", "BUILD_TIME_MILLIS", "${System.currentTimeMillis()}L"
}
+
+ compileOptions {
+ sourceCompatibility 1.8
+ targetCompatibility 1.8
+ }
+
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
@@ -36,17 +40,14 @@ android {
repositories {
mavenLocal()
- maven { url 'https://maven.google.com' }
+ google()
mavenCentral()
- maven { url = uri("https://jcenter.bintray.com/") }
}
dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:23.1.1'
- implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
- implementation 'com.google.dagger:dagger:2.0.1'
- kapt 'com.google.dagger:dagger-compiler:2.0'
+ implementation 'com.google.dagger:dagger:2.9'
+ kapt 'com.google.dagger:dagger-compiler:2.9'
compileOnly 'org.glassfish:javax.annotation:10.0-b28'
}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-butterknife/app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-butterknife/app/build.gradle
index 5a3e08a461d..ddab1fee552 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-butterknife/app/build.gradle
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-butterknife/app/build.gradle
@@ -4,7 +4,6 @@ apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 23
- buildToolsVersion "25.0.2"
defaultConfig {
applicationId "org.example.kotlin.butterknife"
@@ -32,10 +31,7 @@ android {
}
dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
-
implementation 'com.android.support:appcompat-v7:23.3.0'
implementation 'com.jakewharton:butterknife:8.0.1'
kapt 'com.jakewharton:butterknife-compiler:8.0.1'
- implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-butterknife/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-butterknife/build.gradle
index 9c114397e26..443c30fe9aa 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-butterknife/build.gradle
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-butterknife/build.gradle
@@ -1,7 +1,7 @@
buildscript {
repositories {
mavenLocal()
- maven { url 'https://maven.google.com' }
+ google()
mavenCentral()
}
dependencies {
@@ -13,7 +13,7 @@ buildscript {
allprojects {
repositories {
mavenLocal()
- maven { url 'https://maven.google.com' }
+ google()
mavenCentral()
}
}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/build.gradle
index d13de145205..3e7a524127e 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/build.gradle
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/app/build.gradle
@@ -5,7 +5,6 @@ apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 23
- buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example.dagger.kotlin"
@@ -14,6 +13,12 @@ android {
versionCode 1
versionName "1.0"
}
+
+ compileOptions {
+ sourceCompatibility 1.8
+ targetCompatibility 1.8
+ }
+
buildTypes {
release {
minifyEnabled false
@@ -28,9 +33,8 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:23.3.0'
- implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
- implementation 'com.google.dagger:dagger:2.6.1'
- kapt 'com.google.dagger:dagger-compiler:2.6.1'
+ implementation 'com.google.dagger:dagger:2.9'
+ kapt 'com.google.dagger:dagger-compiler:2.9'
compileOnly 'org.glassfish:javax.annotation:10.0-b28'
}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/build.gradle
index fee7d726333..443c30fe9aa 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/build.gradle
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-dagger/build.gradle
@@ -1,9 +1,8 @@
buildscript {
repositories {
mavenLocal()
- maven { url 'https://maven.google.com' }
+ google()
mavenCentral()
- maven { url = uri("https://jcenter.bintray.com/") }
}
dependencies {
classpath "com.android.tools.build:gradle:$android_tools_version"
@@ -14,8 +13,7 @@ buildscript {
allprojects {
repositories {
mavenLocal()
- maven { url 'https://maven.google.com' }
+ google()
mavenCentral()
- maven { url = uri("https://jcenter.bintray.com/") }
}
}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin/build.gradle.kts
index c8bf6be025d..98dd246b3f0 100644
--- a/libraries/tools/kotlin-gradle-plugin/build.gradle.kts
+++ b/libraries/tools/kotlin-gradle-plugin/build.gradle.kts
@@ -63,10 +63,10 @@ dependencies {
exclude(group = "*")
}
- compileOnly("com.android.tools.build:gradle:3.4.0")
- compileOnly("com.android.tools.build:gradle-api:3.4.0")
- compileOnly("com.android.tools.build:builder:3.4.0")
- compileOnly("com.android.tools.build:builder-model:3.4.0")
+ compileOnly("com.android.tools.build:gradle:3.6.4")
+ compileOnly("com.android.tools.build:gradle-api:3.6.4")
+ compileOnly("com.android.tools.build:builder:3.6.4")
+ compileOnly("com.android.tools.build:builder-model:3.6.4")
compileOnly("org.codehaus.groovy:groovy-all:2.4.12")
compileOnly(project(":kotlin-reflect"))
compileOnly(intellijCore())
@@ -85,11 +85,6 @@ dependencies {
embedded(commonDependency("com.google.guava:guava")) { isTransitive = false }
embedded(commonDependency("org.jetbrains.teamcity:serviceMessages")) { isTransitive = false }
- // com.android.tools.build:gradle has ~50 unneeded transitive dependencies
- compileOnly("com.android.tools.build:gradle:3.0.0") { isTransitive = false }
- compileOnly("com.android.tools.build:gradle-core:3.0.0") { isTransitive = false }
- compileOnly("com.android.tools.build:builder-model:3.0.0") { isTransitive = false }
-
if (!kotlinBuildProperties.isInJpsBuildIdeaSync) {
"functionalTestImplementation"("com.android.tools.build:gradle:4.0.1") {
because("Functional tests are using APIs from Android. Latest Version is used to avoid NoClassDefFoundError")
diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt
index 02f11aed975..4c07f99dc65 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt
@@ -389,9 +389,9 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To
val subluginOptionsFromProvidedApOptions = lazy {
val apOptionsFromProviders =
- annotationProcessorProviders?.flatMap {
- (it as CommandLineArgumentProvider).asArguments()
- }.orEmpty()
+ annotationProcessorProviders
+ ?.flatMap { it.asArguments() }
+ .orEmpty()
apOptionsFromProviders.map {
// Use the internal subplugin option type to exclude them from Gradle input/output checks, as their providers are already
@@ -829,14 +829,8 @@ internal fun checkAndroidAnnotationProcessorDependencyUsage(project: Project) {
private val BaseVariant.annotationProcessorOptions: Map?
get() = javaCompileOptions.annotationProcessorOptions.arguments
-private val BaseVariant.annotationProcessorOptionProviders: List<*>
- get() = try {
- // Public API added in Android Gradle Plugin 3.2.0-alpha15:
- val apOptions = javaCompileOptions.annotationProcessorOptions
- apOptions.javaClass.getMethod("getCompilerArgumentProviders").invoke(apOptions) as List<*>
- } catch (e: NoSuchMethodException) {
- emptyList()
- }
+private val BaseVariant.annotationProcessorOptionProviders: List
+ get() = javaCompileOptions.annotationProcessorOptions.compilerArgumentProviders
//TODO once the Android plugin reaches its 3.0.0 release, consider compiling against it (remove the reflective call)
private val BaseVariant.dataBindingDependencyArtifactsIfSupported: FileCollection?
diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt
index e8789e3606f..25adc15e283 100755
--- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt
@@ -741,13 +741,16 @@ internal open class KotlinAndroidPlugin(
}
companion object {
+ const val MINIMAL_SUPPORTED_AGP_VERSION = "3.6.4"
fun androidTargetHandler(): AbstractAndroidProjectHandler {
val tasksProvider = AndroidTasksProvider()
if (androidPluginVersion != null) {
- val minimalVersion = "3.0.0"
- if (compareVersionNumbers(androidPluginVersion, minimalVersion) < 0) {
- throw IllegalStateException("Kotlin: Unsupported version of com.android.tools.build:gradle plugin: version $minimalVersion or higher should be used with kotlin-android plugin")
+ if (compareVersionNumbers(androidPluginVersion, MINIMAL_SUPPORTED_AGP_VERSION) < 0) {
+ throw IllegalStateException(
+ "Kotlin: Unsupported version of com.android.tools.build:gradle plugin: " +
+ "version $MINIMAL_SUPPORTED_AGP_VERSION or higher should be used with kotlin-android plugin"
+ )
}
}
@@ -812,7 +815,7 @@ abstract class AbstractAndroidProjectHandler(private val kotlinConfigurationTool
protected abstract fun wireKotlinTasks(
project: Project,
compilation: KotlinJvmAndroidCompilation,
- androidPlugin: BasePlugin<*>,
+ androidPlugin: BasePlugin,
androidExt: BaseExtension,
variantData: BaseVariant,
javaTask: TaskProvider,
@@ -841,7 +844,7 @@ abstract class AbstractAndroidProjectHandler(private val kotlinConfigurationTool
val plugin = androidPluginIds
.asSequence()
- .mapNotNull { project.plugins.findPlugin(it) as? BasePlugin<*> }
+ .mapNotNull { project.plugins.findPlugin(it) as? BasePlugin }
.firstOrNull()
?: throw InvalidPluginException("'kotlin-android' expects one of the Android Gradle " +
"plugins to be applied to the project:\n\t" +
@@ -1035,7 +1038,7 @@ abstract class AbstractAndroidProjectHandler(private val kotlinConfigurationTool
compilation: KotlinJvmAndroidCompilation,
project: Project,
androidExt: BaseExtension,
- androidPlugin: BasePlugin<*>
+ androidPlugin: BasePlugin
) {
getTestedVariantData(variantData)?.let { testedVariant ->
diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/Android25ProjectHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/Android25ProjectHandler.kt
index 0c437b9132f..9a71c3a3c15 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/Android25ProjectHandler.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/Android25ProjectHandler.kt
@@ -40,7 +40,7 @@ class Android25ProjectHandler(
override fun wireKotlinTasks(
project: Project,
compilation: KotlinJvmAndroidCompilation,
- androidPlugin: BasePlugin<*>,
+ androidPlugin: BasePlugin,
androidExt: BaseExtension,
variantData: BaseVariant,
javaTask: TaskProvider,
diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidGradleWrapper.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidGradleWrapper.kt
index 904ea8db2ea..de23f28a3b6 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidGradleWrapper.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/AndroidGradleWrapper.kt
@@ -13,7 +13,7 @@ import java.lang.reflect.Method
import java.lang.reflect.Modifier
object AndroidGradleWrapper {
- fun getRuntimeJars(basePlugin: BasePlugin<*>, baseExtension: BaseExtension): Any? {
+ fun getRuntimeJars(basePlugin: BasePlugin, baseExtension: BaseExtension): Any? {
return basePlugin("getRuntimeJarList") ?: baseExtension("getBootClasspath") ?: basePlugin("getBootClasspath")
}
}
diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt
index 677af549b64..60dc4c8e507 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt
@@ -15,7 +15,6 @@ import org.gradle.api.attributes.Attribute
import org.gradle.api.attributes.Usage.JAVA_RUNTIME_JARS
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
-import org.jetbrains.kotlin.gradle.utils.listProperty
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import org.jetbrains.kotlin.gradle.utils.setProperty
@@ -169,7 +168,7 @@ open class KotlinAndroidTarget(
)
} else {
nestedVariants.single()
- } as KotlinTargetComponent // Type inference corner case or bug? this cast in each branch is redundant but required here
+ }
}.toSet()
}