diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt index b6b8c60cb0a..9452e00b276 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt @@ -103,7 +103,8 @@ abstract class BaseGradleIT { val androidGradlePluginVersion: String? = null, val forceOutputToStdout: Boolean = false, val debug: Boolean = false, - val freeCommandLineArgs: List = emptyList()) + val freeCommandLineArgs: List = emptyList(), + val kotlinVersion: String = KOTLIN_VERSION) open inner class Project( val projectName: String, @@ -302,7 +303,7 @@ abstract class BaseGradleIT { add(if (options.withDaemon) "--daemon" else "--no-daemon") } - add("-Pkotlin_version=" + KOTLIN_VERSION) + add("-Pkotlin_version=" + options.kotlinVersion) options.incremental?.let { add("-Pkotlin.incremental=$it") } options.androidGradlePluginVersion?.let { add("-Pandroid_tools_version=$it")} if (options.debug) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt index 1ef9e87a8dd..48741e22ef3 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt @@ -365,4 +365,18 @@ class KotlinGradleIT: BaseGradleIT() { assertSuccessful() } } + + @Test + fun testDowngradeTo106() { + val project = Project("kotlinProject", GRADLE_VERSION) + val options = defaultBuildOptions().copy(incremental = true, withDaemon = false) + + project.build("assemble", options = options) { + assertSuccessful() + } + + project.build("clean", "assemble", options = options.copy(kotlinVersion = "1.0.6")) { + assertSuccessful() + } + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle index 57f99eef42c..645bfeda307 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle @@ -1,6 +1,7 @@ buildscript { repositories { mavenLocal() + mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index 17494371482..4f635a8ba8a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -79,7 +79,10 @@ abstract class AbstractKotlinCompile() : AbstractCo internal var coroutinesFromGradleProperties: Coroutines? = null // Input is needed to force rebuild even if source files are not changed @get:Input - val coroutines: Coroutines + internal val coroutinesStr: String + get() = coroutines.name + + private val coroutines: Coroutines get() = kotlinExt.experimental.coroutines ?: coroutinesFromGradleProperties ?: Coroutines.DEFAULT