From 2adaaf5e9fc60d3e8471de92eb7642515ca5d62d Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Thu, 19 Jan 2017 13:03:49 +0300 Subject: [PATCH] JS: recognize LANGUAGE_VERSION directive in testData --- .../org/jetbrains/kotlin/js/test/BasicBoxTest.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt index 9636902a373..d8b248873a0 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt @@ -28,8 +28,7 @@ import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector import org.jetbrains.kotlin.cli.common.output.outputUtils.writeAllTo import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment -import org.jetbrains.kotlin.config.CommonConfigurationKeys -import org.jetbrains.kotlin.config.CompilerConfiguration +import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.js.JavaScript import org.jetbrains.kotlin.js.config.EcmaVersion @@ -48,6 +47,7 @@ import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.psi.KtPsiFactory import org.jetbrains.kotlin.serialization.js.ModuleKind +import org.jetbrains.kotlin.test.InTextDirectivesUtils import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.KotlinTestUtils.TestFileFactory import org.jetbrains.kotlin.test.KotlinTestWithEnvironment @@ -255,6 +255,9 @@ abstract class BasicBoxTest( val configuration = environment.configuration.copy() configuration.put(CommonConfigurationKeys.DISABLE_INLINE, module.inliningDisabled) + module.languageVersion?.let { + configuration.put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl(it, ApiVersion.LATEST)) + } configuration.put(JSConfigurationKeys.LIBRARY_FILES, LibrarySourcesConfig.JS_STDLIB + LibrarySourcesConfig.JS_KOTLIN_TEST + dependencies) @@ -298,6 +301,12 @@ abstract class BasicBoxTest( KotlinTestUtils.mkdirs(temporaryFile.parentFile) temporaryFile.writeText(text, Charsets.UTF_8) + val version = InTextDirectivesUtils.findStringWithPrefixes(text, "// LANGUAGE_VERSION:") + if (version != null) { + assert(currentModule.languageVersion == null) { "Should not specify LANGUAGE_VERSION twice" } + currentModule.languageVersion = LanguageVersion.fromVersionString(version) + } + return TestFile(temporaryFile.absolutePath, currentModule) } @@ -324,6 +333,7 @@ abstract class BasicBoxTest( var moduleKind = ModuleKind.PLAIN var inliningDisabled = false val files = mutableListOf() + var languageVersion: LanguageVersion? = null } override fun createEnvironment(): KotlinCoreEnvironment {