From b5ff49c903bf4cdfd9728a30936c7cd0030fdc8d Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Wed, 1 Sep 2021 16:32:40 +0300 Subject: [PATCH] [FIR] Consider JVM_TARGET in tests --- .../kotlin/platform/jvm/JvmPlatform.kt | 2 ++ .../directives/ModuleStructureDirectives.kt | 4 ++++ .../impl/ModuleStructureExtractorImpl.kt | 17 +++++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/compiler/config.jvm/src/org/jetbrains/kotlin/platform/jvm/JvmPlatform.kt b/compiler/config.jvm/src/org/jetbrains/kotlin/platform/jvm/JvmPlatform.kt index 09c029a3faa..1f56059fa5a 100644 --- a/compiler/config.jvm/src/org/jetbrains/kotlin/platform/jvm/JvmPlatform.kt +++ b/compiler/config.jvm/src/org/jetbrains/kotlin/platform/jvm/JvmPlatform.kt @@ -33,6 +33,8 @@ object JvmPlatforms { val jvm16: TargetPlatform = jvmTargetToJdkPlatform[JvmTarget.JVM_1_6]!! val jvm18: TargetPlatform = jvmTargetToJdkPlatform[JvmTarget.JVM_1_8]!! + val jvm9: TargetPlatform = jvmTargetToJdkPlatform[JvmTarget.JVM_9]!! + val jvm15: TargetPlatform = jvmTargetToJdkPlatform[JvmTarget.JVM_15]!! fun jvmPlatformByTargetVersion(targetVersion: JvmTarget): TargetPlatform = jvmTargetToJdkPlatform[targetVersion]!! diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/ModuleStructureDirectives.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/ModuleStructureDirectives.kt index 7d21b3ff8b7..2caba2f867f 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/ModuleStructureDirectives.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/ModuleStructureDirectives.kt @@ -56,4 +56,8 @@ object ModuleStructureDirectives : SimpleDirectivesContainer() { val TARGET_PLATFORM by enumDirective( "Declares target platform for current module" ) + + val JVM_TARGET by stringDirective( + "Declares JVM target platform for current module" + ) } diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt index aad2f30ecd7..7bf4d60e777 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/ModuleStructureExtractorImpl.kt @@ -236,6 +236,23 @@ class ModuleStructureExtractorImpl( } } } + ModuleStructureDirectives.JVM_TARGET -> { + if (currentModuleTargetPlatform != null) { + assertions.fail { "Target platform already specified twice for module $currentModuleName" } + } + currentModuleTargetPlatform = if (values.size != 1) { + assertions.fail { "JVM target should be single" } + } else { + when (values.single()) { + "1.6" -> JvmPlatforms.jvm16 + "1.8" -> JvmPlatforms.jvm18 + "9" -> JvmPlatforms.jvm9 + "15" -> JvmPlatforms.jvm15 + else -> assertions.fail { "Incorrect value for JVM target" } + } + } + return false // Workaround for FE and FIR + } else -> return false }