diff --git a/kotlin-native/runtime/build.gradle.kts b/kotlin-native/runtime/build.gradle.kts index ae1ac43f791..36e801c388c 100644 --- a/kotlin-native/runtime/build.gradle.kts +++ b/kotlin-native/runtime/build.gradle.kts @@ -588,6 +588,9 @@ konanArtifacts { "-opt-in=kotlin.native.internal.InternalForKotlinNative", "-language-version", "1.9", + "-api-version", + "2.0", + "-Xsuppress-api-version-greater-than-language-version-error", ) commonStdlibSrcDirs.forEach { commonSrcDir(it) } diff --git a/libraries/stdlib/build.gradle.kts b/libraries/stdlib/build.gradle.kts index 99ab94020fd..12a31a59241 100644 --- a/libraries/stdlib/build.gradle.kts +++ b/libraries/stdlib/build.gradle.kts @@ -1,6 +1,7 @@ @file:Suppress("UNUSED_VARIABLE", "NAME_SHADOWING") import org.gradle.jvm.tasks.Jar import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions import org.jetbrains.kotlin.gradle.dsl.KotlinVersion import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.GenerateProjectStructureMetadata @@ -40,6 +41,12 @@ fun outgoingConfiguration(name: String, configure: Action = Actio configure(this) } +fun KotlinCommonCompilerOptions.mainCompilationWithK1() { + languageVersion = KotlinVersion.KOTLIN_1_9 + apiVersion = KotlinVersion.KOTLIN_2_0 + freeCompilerArgs.add("-Xsuppress-api-version-greater-than-language-version-error") +} + val configurationBuiltins = resolvingConfiguration("builtins") { attributes.attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements.JAR)) } @@ -83,9 +90,10 @@ kotlin { diagnosticNamesArg, ) ) + mainCompilationWithK1() // workaround for compiling legacy MPP metadata, remove when this compilation is not needed anymore // restate the list of opt-ins - compilerOptions.optIn.addAll(commonOptIns) + optIn.addAll(commonOptIns) } } } @@ -122,6 +130,7 @@ kotlin { diagnosticNamesArg, ) ) + mainCompilationWithK1() } } defaultSourceSet { @@ -147,6 +156,7 @@ kotlin { diagnosticNamesArg, ) ) + mainCompilationWithK1() } } } @@ -165,6 +175,7 @@ kotlin { diagnosticNamesArg, ) ) + mainCompilationWithK1() } } } @@ -219,15 +230,16 @@ kotlin { compilations { all { kotlinOptions { - freeCompilerArgs += "-Xallow-kotlin-package" + freeCompilerArgs += listOf( + "-Xallow-kotlin-package", + "-Xexpect-actual-classes", + ) } } - val main by getting - main.apply { + val main by getting { kotlinOptions { freeCompilerArgs += listOfNotNull( "-Xir-module-name=kotlin", - "-Xexpect-actual-classes", diagnosticNamesArg, ) @@ -235,6 +247,9 @@ kotlin { allWarningsAsErrors = true } } + compileTaskProvider.configure { + compilerOptions.mainCompilationWithK1() + } } } } @@ -251,10 +266,12 @@ kotlin { diagnosticNamesArg ) } - val main by getting - main.apply { + val main by getting { kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin" kotlinOptions.allWarningsAsErrors = true + compileTaskProvider.configure { + compilerOptions.mainCompilationWithK1() + } } } } diff --git a/libraries/stdlib/common/build.gradle b/libraries/stdlib/common/build.gradle index 4248a5a7d36..c438a31f209 100644 --- a/libraries/stdlib/common/build.gradle +++ b/libraries/stdlib/common/build.gradle @@ -37,6 +37,8 @@ compileKotlinCommon { compileKotlinCommon { kotlinOptions { + languageVersion = "1.9" + apiVersion = "2.0" freeCompilerArgs = [ "-module-name", project.name, "-opt-in=kotlin.RequiresOptIn", @@ -44,6 +46,7 @@ compileKotlinCommon { "-opt-in=kotlin.contracts.ExperimentalContracts", "-Xallow-kotlin-package", "-Xexpect-actual-classes", + "-Xsuppress-api-version-greater-than-language-version-error", ] } } diff --git a/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts b/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts index 5c18c28bd5b..14517533257 100644 --- a/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts +++ b/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts @@ -148,6 +148,8 @@ kotlin { } tasks.withType> { + kotlinOptions.languageVersion = "1.9" + kotlinOptions.apiVersion = "2.0" kotlinOptions.freeCompilerArgs += listOf( "-Xallow-kotlin-package", "-Xexpect-actual-classes", @@ -156,6 +158,7 @@ tasks.withType> { "-opt-in=kotlin.RequiresOptIn", "-opt-in=kotlin.ExperimentalUnsignedTypes", "-opt-in=kotlin.ExperimentalStdlibApi", + "-Xsuppress-api-version-greater-than-language-version-error", ) } diff --git a/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts b/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts index b011e73b3c2..c0b46b0c775 100644 --- a/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts +++ b/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts @@ -55,6 +55,8 @@ tasks.compileKotlin { "kotlin/enums/EnumEntries.kt" ).map { copySources.get().destinationDir.resolve(it) } kotlinOptions { + languageVersion = "1.9" + apiVersion = "2.0" freeCompilerArgs += listOf( "-Xallow-kotlin-package", "-Xexpect-actual-classes", @@ -62,6 +64,7 @@ tasks.compileKotlin { "-opt-in=kotlin.RequiresOptIn", "-opt-in=kotlin.contracts.ExperimentalContracts", "-opt-in=kotlin.ExperimentalMultiplatform", + "-Xsuppress-api-version-greater-than-language-version-error", ) moduleName = "kotlin-stdlib" } diff --git a/libraries/stdlib/test/collections/IterableTests.kt b/libraries/stdlib/test/collections/IterableTests.kt index 1b15aecadef..cdea3d166ba 100644 --- a/libraries/stdlib/test/collections/IterableTests.kt +++ b/libraries/stdlib/test/collections/IterableTests.kt @@ -543,6 +543,7 @@ abstract class IterableTests>(val createFrom: (Array = data diff --git a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/common-configuration.gradle.kts b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/common-configuration.gradle.kts index 3dca48450c3..00251529573 100644 --- a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/common-configuration.gradle.kts +++ b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/common-configuration.gradle.kts @@ -133,10 +133,8 @@ fun Project.configureKotlinCompilationOptions() { val coreLibProjects: List by rootProject.extra val projectsWithForced19LanguageVersion = coreLibProjects + listOf( - ":kotlin-stdlib-jvm-minimal-for-test", - ":kotlin-stdlib-js-ir-minimal-for-test", ":kotlin-dom-api-compat", - ) + ) - listOf(":kotlin-stdlib", ":kotlin-stdlib-common") tasks.withType>().configureEach { kotlinOptions {