Extract directive map to separate class
This commit is contained in:
+1
-1
@@ -242,7 +242,7 @@ class CodegenTestsOnAndroidGenerator private constructor(private val pathManager
|
|||||||
file.name,
|
file.name,
|
||||||
expectedText,
|
expectedText,
|
||||||
object : TestFiles.TestFileFactoryNoModules<TestFile>() {
|
object : TestFiles.TestFileFactoryNoModules<TestFile>() {
|
||||||
override fun create(fileName: String, text: String, directives: Map<String, String>): TestFile {
|
override fun create(fileName: String, text: String, directives: Directives): TestFile {
|
||||||
return TestFile(fileName, text, directives)
|
return TestFile(fileName, text, directives)
|
||||||
}
|
}
|
||||||
}, false,
|
}, false,
|
||||||
|
|||||||
+1
-1
@@ -105,7 +105,7 @@ abstract class AbstractFirTypeEnhancementTest : KtUsefulTestCase() {
|
|||||||
val srcFiles = TestFiles.createTestFiles(
|
val srcFiles = TestFiles.createTestFiles(
|
||||||
javaFile.name, FileUtil.loadFile(javaFile, true),
|
javaFile.name, FileUtil.loadFile(javaFile, true),
|
||||||
object : TestFiles.TestFileFactoryNoModules<File>() {
|
object : TestFiles.TestFileFactoryNoModules<File>() {
|
||||||
override fun create(fileName: String, text: String, directives: Map<String, String>): File {
|
override fun create(fileName: String, text: String, directives: Directives): File {
|
||||||
var currentDir = javaFilesDir
|
var currentDir = javaFilesDir
|
||||||
if ("/" !in fileName) {
|
if ("/" !in fileName) {
|
||||||
val packageFqName =
|
val packageFqName =
|
||||||
|
|||||||
+2
-5
@@ -19,13 +19,10 @@ package org.jetbrains.kotlin.asJava
|
|||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
|
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
|
||||||
import org.jetbrains.kotlin.test.KotlinBaseTest
|
|
||||||
import org.jetbrains.kotlin.checkers.KotlinMultiFileTestWithJava
|
import org.jetbrains.kotlin.checkers.KotlinMultiFileTestWithJava
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
import org.jetbrains.kotlin.test.*
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
|
||||||
import org.jetbrains.kotlin.util.KotlinFrontEndException
|
import org.jetbrains.kotlin.util.KotlinFrontEndException
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -57,7 +54,7 @@ abstract class AbstractCompilerLightClassTest : KotlinMultiFileTestWithJava<Kotl
|
|||||||
module: TestModule?,
|
module: TestModule?,
|
||||||
fileName: String,
|
fileName: String,
|
||||||
text: String,
|
text: String,
|
||||||
directives: Map<String, String?>
|
directives: Directives
|
||||||
): TestFile = TestFile(fileName, text, directives)
|
): TestFile = TestFile(fileName, text, directives)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import com.intellij.openapi.project.Project
|
|||||||
import com.intellij.openapi.util.Condition
|
import com.intellij.openapi.util.Condition
|
||||||
import com.intellij.openapi.util.Conditions
|
import com.intellij.openapi.util.Conditions
|
||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
import com.intellij.openapi.util.text.StringUtil
|
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.psi.util.PsiTreeUtil
|
import com.intellij.psi.util.PsiTreeUtil
|
||||||
import com.intellij.util.containers.ContainerUtil
|
import com.intellij.util.containers.ContainerUtil
|
||||||
@@ -52,10 +51,10 @@ import org.jetbrains.kotlin.psi.KtDeclaration
|
|||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactoryImpl
|
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactoryImpl
|
||||||
|
import org.jetbrains.kotlin.test.Directives
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils.isDirectiveDefined
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils.isDirectiveDefined
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.jetbrains.kotlin.test.KotlinBaseTest
|
import org.jetbrains.kotlin.test.KotlinBaseTest
|
||||||
import org.jetbrains.kotlin.test.util.trimTrailingWhitespacesAndAddNewlineAtEOF
|
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -83,7 +82,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
|
|||||||
): TestModule =
|
): TestModule =
|
||||||
TestModule(name, dependencies, friends)
|
TestModule(name, dependencies, friends)
|
||||||
|
|
||||||
override fun createTestFile(module: TestModule?, fileName: String, text: String, directives: Map<String, String?>): TestFile =
|
override fun createTestFile(module: TestModule?, fileName: String, text: String, directives: Directives): TestFile =
|
||||||
TestFile(module, fileName, text, directives)
|
TestFile(module, fileName, text, directives)
|
||||||
|
|
||||||
|
|
||||||
@@ -138,7 +137,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
|
|||||||
val module: TestModule?,
|
val module: TestModule?,
|
||||||
val fileName: String,
|
val fileName: String,
|
||||||
textWithMarkers: String,
|
textWithMarkers: String,
|
||||||
directives: Map<String, String?>
|
directives: Directives
|
||||||
) : KotlinBaseTest.TestFile(fileName, textWithMarkers, directives) {
|
) : KotlinBaseTest.TestFile(fileName, textWithMarkers, directives) {
|
||||||
val diagnosedRanges: MutableList<DiagnosedRange> = mutableListOf()
|
val diagnosedRanges: MutableList<DiagnosedRange> = mutableListOf()
|
||||||
private val diagnosedRangesToDiagnosticNames: MutableMap<IntRange, MutableSet<String>> = mutableMapOf()
|
private val diagnosedRangesToDiagnosticNames: MutableMap<IntRange, MutableSet<String>> = mutableMapOf()
|
||||||
@@ -411,7 +410,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
|
|||||||
val DIAGNOSTIC_IN_TESTDATA_PATTERN = Regex("<!>|<!(.*?(\\(\".*?\"\\)|\\(\\))??)+(?<!<)!>")
|
val DIAGNOSTIC_IN_TESTDATA_PATTERN = Regex("<!>|<!(.*?(\\(\".*?\"\\)|\\(\\))??)+(?<!<)!>")
|
||||||
|
|
||||||
fun parseDiagnosticFilterDirective(
|
fun parseDiagnosticFilterDirective(
|
||||||
directiveMap: Map<String, String?>,
|
directiveMap: Directives,
|
||||||
allowUnderscoreUsage: Boolean
|
allowUnderscoreUsage: Boolean
|
||||||
): Condition<Diagnostic> {
|
): Condition<Diagnostic> {
|
||||||
val directives = directiveMap[DIAGNOSTICS_DIRECTIVE]
|
val directives = directiveMap[DIAGNOSTICS_DIRECTIVE]
|
||||||
@@ -499,7 +498,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun parseJvmTarget(directiveMap: Map<String, String?>) = directiveMap[JVM_TARGET]?.let { JvmTarget.fromString(it) }
|
private fun parseJvmTarget(directiveMap: Directives) = directiveMap[JVM_TARGET]?.let { JvmTarget.fromString(it) }
|
||||||
|
|
||||||
protected fun parseModulePlatformByName(moduleName: String): TargetPlatform? {
|
protected fun parseModulePlatformByName(moduleName: String): TargetPlatform? {
|
||||||
val nameSuffix = moduleName.substringAfterLast("-", "").toUpperCase()
|
val nameSuffix = moduleName.substringAfterLast("-", "").toUpperCase()
|
||||||
|
|||||||
+5
-4
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.checkers
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.config.*
|
import org.jetbrains.kotlin.config.*
|
||||||
|
import org.jetbrains.kotlin.test.Directives
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -50,10 +51,10 @@ private fun specificFeaturesForTests(): Map<LanguageFeature, LanguageFeature.Sta
|
|||||||
emptyMap()
|
emptyMap()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun parseLanguageVersionSettingsOrDefault(directiveMap: Map<String, String>): CompilerTestLanguageVersionSettings =
|
fun parseLanguageVersionSettingsOrDefault(directiveMap: Directives): CompilerTestLanguageVersionSettings =
|
||||||
parseLanguageVersionSettings(directiveMap) ?: defaultLanguageVersionSettings()
|
parseLanguageVersionSettings(directiveMap) ?: defaultLanguageVersionSettings()
|
||||||
|
|
||||||
fun parseLanguageVersionSettings(directives: Map<String, String?>): CompilerTestLanguageVersionSettings? {
|
fun parseLanguageVersionSettings(directives: Directives): CompilerTestLanguageVersionSettings? {
|
||||||
val apiVersionString = directives[API_VERSION_DIRECTIVE]
|
val apiVersionString = directives[API_VERSION_DIRECTIVE]
|
||||||
val languageFeaturesString = directives[LANGUAGE_DIRECTIVE]
|
val languageFeaturesString = directives[LANGUAGE_DIRECTIVE]
|
||||||
|
|
||||||
@@ -93,9 +94,9 @@ fun defaultLanguageVersionSettings(): CompilerTestLanguageVersionSettings =
|
|||||||
CompilerTestLanguageVersionSettings(emptyMap(), ApiVersion.LATEST_STABLE, LanguageVersion.LATEST_STABLE)
|
CompilerTestLanguageVersionSettings(emptyMap(), ApiVersion.LATEST_STABLE, LanguageVersion.LATEST_STABLE)
|
||||||
|
|
||||||
fun languageVersionSettingsFromText(fileTexts: List<String>): LanguageVersionSettings {
|
fun languageVersionSettingsFromText(fileTexts: List<String>): LanguageVersionSettings {
|
||||||
val allDirectives = HashMap<String, String>()
|
val allDirectives = Directives()
|
||||||
for (fileText in fileTexts) {
|
for (fileText in fileTexts) {
|
||||||
allDirectives.putAll(KotlinTestUtils.parseDirectives(fileText))
|
KotlinTestUtils.parseDirectives(fileText, allDirectives)
|
||||||
}
|
}
|
||||||
return parseLanguageVersionSettingsOrDefault(allDirectives)
|
return parseLanguageVersionSettingsOrDefault(allDirectives)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -119,7 +119,7 @@ abstract class KotlinMultiFileTestWithJava<M : KotlinBaseTest.TestModule, F : Ko
|
|||||||
|
|
||||||
protected abstract fun createTestModule(name: String, dependencies: List<String>, friends: List<String>): M?
|
protected abstract fun createTestModule(name: String, dependencies: List<String>, friends: List<String>): M?
|
||||||
|
|
||||||
protected abstract fun createTestFile(module: M?, fileName: String, text: String, directives: Map<String, String?>): F
|
protected abstract fun createTestFile(module: M?, fileName: String, text: String, directives: Directives): F
|
||||||
|
|
||||||
protected open fun createTestFiles(
|
protected open fun createTestFiles(
|
||||||
file: File,
|
file: File,
|
||||||
@@ -131,7 +131,7 @@ abstract class KotlinMultiFileTestWithJava<M : KotlinBaseTest.TestModule, F : Ko
|
|||||||
module: M?,
|
module: M?,
|
||||||
fileName: String,
|
fileName: String,
|
||||||
text: String,
|
text: String,
|
||||||
directives: Map<String, String>
|
directives: Directives
|
||||||
): F? {
|
): F? {
|
||||||
if (fileName.endsWith(".java")) {
|
if (fileName.endsWith(".java")) {
|
||||||
writeSourceFile(fileName, text, javaFilesDir!!)
|
writeSourceFile(fileName, text, javaFilesDir!!)
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ public abstract class CodegenTestCase extends KotlinBaseTest<KotlinBaseTest.Test
|
|||||||
List<String> kotlinConfigurationFlags = new ArrayList<>(0);
|
List<String> kotlinConfigurationFlags = new ArrayList<>(0);
|
||||||
for (TestFile testFile : testFilesWithConfigurationDirectives) {
|
for (TestFile testFile : testFilesWithConfigurationDirectives) {
|
||||||
String content = testFile.content;
|
String content = testFile.content;
|
||||||
Map<String, String> directives = usePreparsedDirectives ? testFile.directives : parseDirectivesAndFlags(content);
|
Directives directives = usePreparsedDirectives ? testFile.directives : parseDirectivesAndFlags(content);
|
||||||
|
|
||||||
String configurationFlags = directives.get("KOTLIN_CONFIGURATION_FLAGS");
|
String configurationFlags = directives.get("KOTLIN_CONFIGURATION_FLAGS");
|
||||||
if (configurationFlags != null) {
|
if (configurationFlags != null) {
|
||||||
@@ -185,8 +185,8 @@ public abstract class CodegenTestCase extends KotlinBaseTest<KotlinBaseTest.Test
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (directives.containsKey("COMMON_COROUTINES_TEST")) {
|
if (directives.contains("COMMON_COROUTINES_TEST")) {
|
||||||
assert !directives.containsKey("COROUTINES_PACKAGE") : "Must replace COROUTINES_PACKAGE prior to tests compilation";
|
assert !directives.contains("COROUTINES_PACKAGE") : "Must replace COROUTINES_PACKAGE prior to tests compilation";
|
||||||
if (DescriptorUtils.COROUTINES_PACKAGE_FQ_NAME_EXPERIMENTAL.asString().equals(coroutinesPackage)) {
|
if (DescriptorUtils.COROUTINES_PACKAGE_FQ_NAME_EXPERIMENTAL.asString().equals(coroutinesPackage)) {
|
||||||
disableReleaseCoroutines = true;
|
disableReleaseCoroutines = true;
|
||||||
includeCompatExperimentalCoroutines = true;
|
includeCompatExperimentalCoroutines = true;
|
||||||
@@ -779,7 +779,7 @@ public abstract class CodegenTestCase extends KotlinBaseTest<KotlinBaseTest.Test
|
|||||||
List testFiles = TestFiles.createTestFiles(file.getName(), expectedText, new TestFiles.TestFileFactoryNoModules<TestFile>() {
|
List testFiles = TestFiles.createTestFiles(file.getName(), expectedText, new TestFiles.TestFileFactoryNoModules<TestFile>() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public TestFile create(@NotNull String fileName, @NotNull String text, @NotNull Map<String, String> directives) {
|
public TestFile create(@NotNull String fileName, @NotNull String text, @NotNull Directives directives) {
|
||||||
return new TestFile(fileName, text, directives);
|
return new TestFile(fileName, text, directives);
|
||||||
}
|
}
|
||||||
}, false, coroutinesPackage, parseDirectivesPerFiles());
|
}, false, coroutinesPackage, parseDirectivesPerFiles());
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ object InlineTestUtil {
|
|||||||
assert(notInlinedCalls.isEmpty()) { "All inline methods should be inlined but:\n" + notInlinedCalls.joinToString("\n") }
|
assert(notInlinedCalls.isEmpty()) { "All inline methods should be inlined but:\n" + notInlinedCalls.joinToString("\n") }
|
||||||
|
|
||||||
val skipParameterChecking = files.any {
|
val skipParameterChecking = files.any {
|
||||||
it.directives.containsKey("NO_CHECK_LAMBDA_INLINING")
|
"NO_CHECK_LAMBDA_INLINING" in it.directives
|
||||||
} || !doLambdaInliningCheck(outputFiles, inlineInfo)
|
} || !doLambdaInliningCheck(outputFiles, inlineInfo)
|
||||||
|
|
||||||
if (!skipParameterChecking) {
|
if (!skipParameterChecking) {
|
||||||
|
|||||||
+2
-2
@@ -25,7 +25,7 @@ abstract class AbstractFirOldFrontendDiagnosticsTest : AbstractFirDiagnosticsTes
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun runAnalysis(testDataFile: File, testFiles: List<TestFile>, firFilesPerSession: Map<FirSession, List<FirFile>>) {
|
override fun runAnalysis(testDataFile: File, testFiles: List<TestFile>, firFilesPerSession: Map<FirSession, List<FirFile>>) {
|
||||||
if (testFiles.any { it.directives.containsKey("FIR_IGNORE") }) return
|
if (testFiles.any { "FIR_IGNORE" in it.directives }) return
|
||||||
val failure: AssertionError? = try {
|
val failure: AssertionError? = try {
|
||||||
for ((_, firFiles) in firFilesPerSession) {
|
for ((_, firFiles) in firFilesPerSession) {
|
||||||
doFirResolveTestBench(firFiles, FirTotalResolveTransformer().transformers, gc = false)
|
doFirResolveTestBench(firFiles, FirTotalResolveTransformer().transformers, gc = false)
|
||||||
@@ -45,7 +45,7 @@ abstract class AbstractFirOldFrontendDiagnosticsTest : AbstractFirDiagnosticsTes
|
|||||||
compareAndMergeFirFileAndOldFrontendFile(oldFrontendTestDataFile, testDataFile)
|
compareAndMergeFirFileAndOldFrontendFile(oldFrontendTestDataFile, testDataFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
val needDump = testFiles.any { it.directives.containsKey("FIR_DUMP") }
|
val needDump = testFiles.any { "FIR_DUMP" in it.directives }
|
||||||
if (needDump) {
|
if (needDump) {
|
||||||
checkFir(testDataFile, allFirFiles)
|
checkFir(testDataFile, allFirFiles)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -163,7 +163,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void updateConfigurationWithDirectives(String content, CompilerConfiguration configuration) {
|
public static void updateConfigurationWithDirectives(String content, CompilerConfiguration configuration) {
|
||||||
Map<String, String> directives = KotlinTestUtils.parseDirectives(content);
|
Directives directives = KotlinTestUtils.parseDirectives(content);
|
||||||
LanguageVersionSettings languageVersionSettings = CompilerTestLanguageVersionSettingsKt.parseLanguageVersionSettings(directives);
|
LanguageVersionSettings languageVersionSettings = CompilerTestLanguageVersionSettingsKt.parseLanguageVersionSettings(directives);
|
||||||
if (languageVersionSettings == null) {
|
if (languageVersionSettings == null) {
|
||||||
languageVersionSettings = CompilerTestLanguageVersionSettingsKt.defaultLanguageVersionSettings();
|
languageVersionSettings = CompilerTestLanguageVersionSettingsKt.defaultLanguageVersionSettings();
|
||||||
@@ -284,7 +284,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
|||||||
new TestFiles.TestFileFactoryNoModules<File>() {
|
new TestFiles.TestFileFactoryNoModules<File>() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public File create(@NotNull String fileName, @NotNull String text, @NotNull Map<String, String> directives) {
|
public File create(@NotNull String fileName, @NotNull String text, @NotNull Directives directives) {
|
||||||
File targetFile = new File(srcDir, fileName);
|
File targetFile = new File(srcDir, fileName);
|
||||||
try {
|
try {
|
||||||
FileUtil.writeToFile(targetFile, text);
|
FileUtil.writeToFile(targetFile, text);
|
||||||
|
|||||||
+1
-2
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.test.*;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public abstract class ExtensibleResolveTestCase extends KotlinTestWithEnvironment {
|
public abstract class ExtensibleResolveTestCase extends KotlinTestWithEnvironment {
|
||||||
private ExpectedResolveData expectedResolveData;
|
private ExpectedResolveData expectedResolveData;
|
||||||
@@ -48,7 +47,7 @@ public abstract class ExtensibleResolveTestCase extends KotlinTestWithEnvironmen
|
|||||||
List<KtFile> files = TestFiles.createTestFiles("file.kt", text, new TestFiles.TestFileFactoryNoModules<KtFile>() {
|
List<KtFile> files = TestFiles.createTestFiles("file.kt", text, new TestFiles.TestFileFactoryNoModules<KtFile>() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public KtFile create(@NotNull String fileName, @NotNull String text, @NotNull Map<String, String> directives) {
|
public KtFile create(@NotNull String fileName, @NotNull String text, @NotNull Directives directives) {
|
||||||
return expectedResolveData.createFileFromMarkedUpText(fileName, text);
|
return expectedResolveData.createFileFromMarkedUpText(fileName, text);
|
||||||
}
|
}
|
||||||
}, "");
|
}, "");
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.test
|
||||||
|
|
||||||
|
class Directives {
|
||||||
|
|
||||||
|
private val directives = mutableMapOf<String, String?>()
|
||||||
|
|
||||||
|
operator fun contains(key: String): Boolean {
|
||||||
|
return key in directives
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun get(key: String): String? {
|
||||||
|
return directives[key]
|
||||||
|
}
|
||||||
|
|
||||||
|
fun put(key: String, value: String?): String? {
|
||||||
|
return directives.put(key, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun asMapOfSingleValues(): Map<String, String?> {
|
||||||
|
return directives.entries.associate { it.key to it.value?.single() }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -73,7 +73,7 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase()
|
|||||||
open class TestFile @JvmOverloads constructor(
|
open class TestFile @JvmOverloads constructor(
|
||||||
@JvmField val name: String,
|
@JvmField val name: String,
|
||||||
@JvmField val content: String,
|
@JvmField val content: String,
|
||||||
@JvmField val directives: Map<String, String?> = emptyMap()
|
@JvmField val directives: Directives = Directives()
|
||||||
) : Comparable<TestFile> {
|
) : Comparable<TestFile> {
|
||||||
override operator fun compareTo(other: TestFile): Int {
|
override operator fun compareTo(other: TestFile): Int {
|
||||||
return name.compareTo(other.name)
|
return name.compareTo(other.name)
|
||||||
|
|||||||
@@ -525,12 +525,16 @@ public class KotlinTestUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static Map<String, String> parseDirectives(String expectedText) {
|
public static Directives parseDirectives(String expectedText) {
|
||||||
Map<String, String> directives = new HashMap<>();
|
return parseDirectives(expectedText, new Directives());
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static Directives parseDirectives(String expectedText, @NotNull Directives directives) {
|
||||||
return parseByRegexp(DIRECTIVE_PATTERN, expectedText, directives);
|
return parseByRegexp(DIRECTIVE_PATTERN, expectedText, directives);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Map<String, String> parseByRegexp(Pattern pattern, String expectedText, Map<String, String> directives) {
|
private static Directives parseByRegexp(Pattern pattern, String expectedText, Directives directives) {
|
||||||
Matcher directiveMatcher = pattern.matcher(expectedText);
|
Matcher directiveMatcher = pattern.matcher(expectedText);
|
||||||
while (directiveMatcher.find()) {
|
while (directiveMatcher.find()) {
|
||||||
String name = directiveMatcher.group(1);
|
String name = directiveMatcher.group(1);
|
||||||
@@ -542,8 +546,8 @@ public class KotlinTestUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static Map<String, String> parseDirectivesAndFlags(String expectedText) {
|
public static Directives parseDirectivesAndFlags(String expectedText) {
|
||||||
Map<String, String> directiveAndFlags = parseDirectives(expectedText);
|
Directives directiveAndFlags = parseDirectives(expectedText);
|
||||||
parseByRegexp(BACKEND_DIRECTIVE_PATTERN, expectedText, directiveAndFlags);
|
parseByRegexp(BACKEND_DIRECTIVE_PATTERN, expectedText, directiveAndFlags);
|
||||||
return directiveAndFlags;
|
return directiveAndFlags;
|
||||||
}
|
}
|
||||||
@@ -561,7 +565,7 @@ public class KotlinTestUtils {
|
|||||||
List<String> files = TestFiles.createTestFiles("", content, new TestFiles.TestFileFactoryNoModules<String>() {
|
List<String> files = TestFiles.createTestFiles("", content, new TestFiles.TestFileFactoryNoModules<String>() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public String create(@NotNull String fileName, @NotNull String text, @NotNull Map<String, String> directives) {
|
public String create(@NotNull String fileName, @NotNull String text, @NotNull Directives directives) {
|
||||||
int firstLineEnd = text.indexOf('\n');
|
int firstLineEnd = text.indexOf('\n');
|
||||||
return StringUtil.trimTrailing(text.substring(firstLineEnd + 1));
|
return StringUtil.trimTrailing(text.substring(firstLineEnd + 1));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ public class TestFiles {
|
|||||||
commonPrefixOrWholeFile = expectedText;
|
commonPrefixOrWholeFile = expectedText;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Map<String, String> allFilesOrCommonPrefixDirectives = parseDirectivesPerFile ? null : parseDirectivesAndFlags(expectedText);
|
Directives allFilesOrCommonPrefixDirectives = parseDirectivesPerFile ? null : parseDirectivesAndFlags(expectedText);
|
||||||
int processedChars = 0;
|
int processedChars = 0;
|
||||||
M module = null;
|
M module = null;
|
||||||
boolean firstFileProcessed = false;
|
boolean firstFileProcessed = false;
|
||||||
@@ -190,7 +190,7 @@ public class TestFiles {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public interface TestFileFactory<M, F> {
|
public interface TestFileFactory<M, F> {
|
||||||
F createFile(@Nullable M module, @NotNull String fileName, @NotNull String text, @NotNull Map<String, String> directives);
|
F createFile(@Nullable M module, @NotNull String fileName, @NotNull String text, @NotNull Directives directives);
|
||||||
M createModule(@NotNull String name, @NotNull List<String> dependencies, @NotNull List<String> friends);
|
M createModule(@NotNull String name, @NotNull List<String> dependencies, @NotNull List<String> friends);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,13 +200,13 @@ public class TestFiles {
|
|||||||
@Nullable KotlinBaseTest.TestModule module,
|
@Nullable KotlinBaseTest.TestModule module,
|
||||||
@NotNull String fileName,
|
@NotNull String fileName,
|
||||||
@NotNull String text,
|
@NotNull String text,
|
||||||
@NotNull Map<String, String> directives
|
@NotNull Directives directives
|
||||||
) {
|
) {
|
||||||
return create(fileName, text, directives);
|
return create(fileName, text, directives);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public abstract F create(@NotNull String fileName, @NotNull String text, @NotNull Map<String, String> directives);
|
public abstract F create(@NotNull String fileName, @NotNull String text, @NotNull Directives directives);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public KotlinBaseTest.TestModule createModule(@NotNull String name, @NotNull List<String> dependencies, @NotNull List<String> friends) {
|
public KotlinBaseTest.TestModule createModule(@NotNull String name, @NotNull List<String> dependencies, @NotNull List<String> friends) {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.visualizer
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.checkers.KotlinMultiFileTestWithJava
|
import org.jetbrains.kotlin.checkers.KotlinMultiFileTestWithJava
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
|
import org.jetbrains.kotlin.test.Directives
|
||||||
import org.jetbrains.kotlin.test.KotlinBaseTest
|
import org.jetbrains.kotlin.test.KotlinBaseTest
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ abstract class AbstractVisualizer : KotlinMultiFileTestWithJava<KotlinBaseTest.T
|
|||||||
): TestModule? = null
|
): TestModule? = null
|
||||||
|
|
||||||
|
|
||||||
override fun createTestFile(module: TestModule?, fileName: String, text: String, directives: Map<String, String?>): TestFile =
|
override fun createTestFile(module: TestModule?, fileName: String, text: String, directives: Directives): TestFile =
|
||||||
TestFile(fileName, text, directives)
|
TestFile(fileName, text, directives)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -117,7 +117,7 @@ abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdir() {
|
|||||||
fileName,
|
fileName,
|
||||||
text,
|
text,
|
||||||
object : TestFileFactoryNoModules<File>() {
|
object : TestFileFactoryNoModules<File>() {
|
||||||
override fun create(fileName: String, text: String, directives: Map<String, String>): File {
|
override fun create(fileName: String, text: String, directives: Directives): File {
|
||||||
val targetFile = File(tmpdir, fileName)
|
val targetFile = File(tmpdir, fileName)
|
||||||
targetFile.writeText(adaptJavaSource(text))
|
targetFile.writeText(adaptJavaSource(text))
|
||||||
return targetFile
|
return targetFile
|
||||||
|
|||||||
+2
-1
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.idea.debugger.test.util.KotlinOutputChecker
|
|||||||
import org.jetbrains.kotlin.idea.debugger.test.util.LogPropagator
|
import org.jetbrains.kotlin.idea.debugger.test.util.LogPropagator
|
||||||
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
|
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
|
||||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||||
|
import org.jetbrains.kotlin.test.Directives
|
||||||
import org.jetbrains.kotlin.test.KotlinBaseTest.TestFile
|
import org.jetbrains.kotlin.test.KotlinBaseTest.TestFile
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.jetbrains.kotlin.test.TestMetadata
|
import org.jetbrains.kotlin.test.TestMetadata
|
||||||
@@ -129,7 +130,7 @@ abstract class KotlinDescriptorTestCase : DescriptorTestCase() {
|
|||||||
wholeFile.name,
|
wholeFile.name,
|
||||||
wholeFileContents,
|
wholeFileContents,
|
||||||
object : org.jetbrains.kotlin.test.TestFiles.TestFileFactoryNoModules<TestFile>() {
|
object : org.jetbrains.kotlin.test.TestFiles.TestFileFactoryNoModules<TestFile>() {
|
||||||
override fun create(fileName: String, text: String, directives: Map<String, String?>): TestFile {
|
override fun create(fileName: String, text: String, directives: Directives): TestFile {
|
||||||
return TestFile(fileName, text, directives)
|
return TestFile(fileName, text, directives)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ public abstract class AbstractDiagnosticMessageTest extends KotlinTestWithEnviro
|
|||||||
String fileName = file.getName();
|
String fileName = file.getName();
|
||||||
|
|
||||||
String fileData = KotlinTestUtils.doLoadFile(file);
|
String fileData = KotlinTestUtils.doLoadFile(file);
|
||||||
Map<String,String> directives = KotlinTestUtils.parseDirectives(fileData);
|
Directives directives = KotlinTestUtils.parseDirectives(fileData);
|
||||||
int diagnosticNumber = getDiagnosticNumber(directives);
|
int diagnosticNumber = getDiagnosticNumber(directives);
|
||||||
final Set<DiagnosticFactory<?>> diagnosticFactories = getDiagnosticFactories(directives);
|
final Set<DiagnosticFactory<?>> diagnosticFactories = getDiagnosticFactories(directives);
|
||||||
MessageType messageType = getMessageTypeDirective(directives);
|
MessageType messageType = getMessageTypeDirective(directives);
|
||||||
@@ -149,7 +149,7 @@ public abstract class AbstractDiagnosticMessageTest extends KotlinTestWithEnviro
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int getDiagnosticNumber(Map<String, String> directives) {
|
private static int getDiagnosticNumber(Directives directives) {
|
||||||
String diagnosticsNumber = directives.get(DIAGNOSTICS_NUMBER_DIRECTIVE);
|
String diagnosticsNumber = directives.get(DIAGNOSTICS_NUMBER_DIRECTIVE);
|
||||||
assert diagnosticsNumber != null : DIAGNOSTICS_NUMBER_DIRECTIVE + " should be present.";
|
assert diagnosticsNumber != null : DIAGNOSTICS_NUMBER_DIRECTIVE + " should be present.";
|
||||||
try {
|
try {
|
||||||
@@ -161,7 +161,7 @@ public abstract class AbstractDiagnosticMessageTest extends KotlinTestWithEnviro
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private Set<DiagnosticFactory<?>> getDiagnosticFactories(Map<String, String> directives) {
|
private Set<DiagnosticFactory<?>> getDiagnosticFactories(Directives directives) {
|
||||||
String diagnosticsData = directives.get(DIAGNOSTICS_DIRECTIVE);
|
String diagnosticsData = directives.get(DIAGNOSTICS_DIRECTIVE);
|
||||||
assert diagnosticsData != null : DIAGNOSTICS_DIRECTIVE + " should be present.";
|
assert diagnosticsData != null : DIAGNOSTICS_DIRECTIVE + " should be present.";
|
||||||
Set<DiagnosticFactory<?>> diagnosticFactories = new HashSet<>();
|
Set<DiagnosticFactory<?>> diagnosticFactories = new HashSet<>();
|
||||||
@@ -206,7 +206,7 @@ public abstract class AbstractDiagnosticMessageTest extends KotlinTestWithEnviro
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private static MessageType getMessageTypeDirective(Map<String, String> directives) {
|
private static MessageType getMessageTypeDirective(Directives directives) {
|
||||||
String messageType = directives.get(MESSAGE_TYPE_DIRECTIVE);
|
String messageType = directives.get(MESSAGE_TYPE_DIRECTIVE);
|
||||||
if (messageType == null) return null;
|
if (messageType == null) return null;
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils
|
|||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.idea.test.withCustomCompilerOptions
|
import org.jetbrains.kotlin.idea.test.withCustomCompilerOptions
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
|
import org.jetbrains.kotlin.test.Directives
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.jetbrains.kotlin.test.TestFiles
|
import org.jetbrains.kotlin.test.TestFiles
|
||||||
import org.jetbrains.kotlin.test.testFramework.runWriteAction
|
import org.jetbrains.kotlin.test.testFramework.runWriteAction
|
||||||
@@ -113,7 +114,7 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest
|
|||||||
"single.kt",
|
"single.kt",
|
||||||
multiFileText,
|
multiFileText,
|
||||||
object : TestFiles.TestFileFactoryNoModules<TestFile>() {
|
object : TestFiles.TestFileFactoryNoModules<TestFile>() {
|
||||||
override fun create(fileName: String, text: String, directives: Map<String, String>): TestFile {
|
override fun create(fileName: String, text: String, directives: Directives): TestFile {
|
||||||
val linesWithoutDirectives = text.lines().filter {
|
val linesWithoutDirectives = text.lines().filter {
|
||||||
!it.startsWith("// LANGUAGE_VERSION") && !it.startsWith("// FILE")
|
!it.startsWith("// LANGUAGE_VERSION") && !it.startsWith("// FILE")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import com.intellij.openapi.project.Project
|
|||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import com.intellij.psi.PsiJavaFile
|
import com.intellij.psi.PsiJavaFile
|
||||||
import com.intellij.psi.codeStyle.CodeStyleManager
|
import com.intellij.psi.codeStyle.CodeStyleManager
|
||||||
import com.intellij.testFramework.LightPlatformTestCase
|
|
||||||
import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices
|
import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices
|
||||||
import org.jetbrains.kotlin.idea.j2k.J2kPostProcessor
|
import org.jetbrains.kotlin.idea.j2k.J2kPostProcessor
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||||
@@ -38,7 +37,7 @@ abstract class AbstractJavaToKotlinConverterSingleFileTest : AbstractJavaToKotli
|
|||||||
|
|
||||||
val settings = ConverterSettings.defaultSettings.copy()
|
val settings = ConverterSettings.defaultSettings.copy()
|
||||||
val directives = KotlinTestUtils.parseDirectives(javaCode)
|
val directives = KotlinTestUtils.parseDirectives(javaCode)
|
||||||
for ((name, value) in directives) {
|
for ((name, value) in directives.asMapOfSingleValues()) {
|
||||||
when (name) {
|
when (name) {
|
||||||
"forceNotNullTypes" -> settings.forceNotNullTypes = value.toBoolean()
|
"forceNotNullTypes" -> settings.forceNotNullTypes = value.toBoolean()
|
||||||
"specifyLocalVariableTypeByDefault" -> settings.specifyLocalVariableTypeByDefault = value.toBoolean()
|
"specifyLocalVariableTypeByDefault" -> settings.specifyLocalVariableTypeByDefault = value.toBoolean()
|
||||||
|
|||||||
@@ -30,10 +30,7 @@ import org.jetbrains.kotlin.js.test.utils.LineOutputToStringVisitor
|
|||||||
import org.jetbrains.kotlin.js.util.TextOutputImpl
|
import org.jetbrains.kotlin.js.util.TextOutputImpl
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.serialization.js.ModuleKind
|
import org.jetbrains.kotlin.serialization.js.ModuleKind
|
||||||
import org.jetbrains.kotlin.test.KotlinBaseTest
|
import org.jetbrains.kotlin.test.*
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
|
||||||
import org.jetbrains.kotlin.test.KotlinTestWithEnvironment
|
|
||||||
import org.jetbrains.kotlin.test.TestFiles
|
|
||||||
import org.jetbrains.kotlin.utils.DFS
|
import org.jetbrains.kotlin.utils.DFS
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.Closeable
|
import java.io.Closeable
|
||||||
@@ -140,7 +137,7 @@ abstract class AbstractJsLineNumberTest : KotlinTestWithEnvironment() {
|
|||||||
private val tmpDir = KotlinTestUtils.tmpDir("js-tests")
|
private val tmpDir = KotlinTestUtils.tmpDir("js-tests")
|
||||||
private val defaultModule = TestModule(BasicBoxTest.TEST_MODULE, emptyList(), emptyList())
|
private val defaultModule = TestModule(BasicBoxTest.TEST_MODULE, emptyList(), emptyList())
|
||||||
|
|
||||||
override fun createFile(module: TestModule?, fileName: String, text: String, directives: Map<String, String>): TestFile? {
|
override fun createFile(module: TestModule?, fileName: String, text: String, directives: Directives): TestFile? {
|
||||||
val currentModule = module ?: defaultModule
|
val currentModule = module ?: defaultModule
|
||||||
|
|
||||||
val temporaryFile = File(tmpDir, "${currentModule.name}/$fileName")
|
val temporaryFile = File(tmpDir, "${currentModule.name}/$fileName")
|
||||||
@@ -165,7 +162,7 @@ abstract class AbstractJsLineNumberTest : KotlinTestWithEnvironment() {
|
|||||||
val files = mutableListOf<TestFile>()
|
val files = mutableListOf<TestFile>()
|
||||||
}
|
}
|
||||||
|
|
||||||
private class TestFile(val fileName: String, content: String, val module: TestModule, directives: Map<String, String?>) :
|
private class TestFile(val fileName: String, content: String, val module: TestModule, directives: Directives) :
|
||||||
KotlinBaseTest.TestFile(fileName, content, directives) {
|
KotlinBaseTest.TestFile(fileName, content, directives) {
|
||||||
init {
|
init {
|
||||||
module.files += this
|
module.files += this
|
||||||
|
|||||||
@@ -778,7 +778,7 @@ abstract class BasicBoxTest(
|
|||||||
val defaultModule = TestModule(TEST_MODULE, emptyList(), emptyList())
|
val defaultModule = TestModule(TEST_MODULE, emptyList(), emptyList())
|
||||||
var languageVersionSettings: LanguageVersionSettings? = null
|
var languageVersionSettings: LanguageVersionSettings? = null
|
||||||
|
|
||||||
override fun createFile(module: TestModule?, fileName: String, text: String, directives: Map<String, String>): TestFile? {
|
override fun createFile(module: TestModule?, fileName: String, text: String, directives: Directives): TestFile? {
|
||||||
val currentModule = module ?: defaultModule
|
val currentModule = module ?: defaultModule
|
||||||
|
|
||||||
val ktFile = KtPsiFactory(project).createFile(text)
|
val ktFile = KtPsiFactory(project).createFile(text)
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.name.FqName
|
|||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||||
import org.jetbrains.kotlin.psi.KtPsiFactory
|
import org.jetbrains.kotlin.psi.KtPsiFactory
|
||||||
|
import org.jetbrains.kotlin.test.Directives
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.jetbrains.kotlin.test.KotlinTestWithEnvironment
|
import org.jetbrains.kotlin.test.KotlinTestWithEnvironment
|
||||||
import org.jetbrains.kotlin.test.TestFiles
|
import org.jetbrains.kotlin.test.TestFiles
|
||||||
@@ -158,7 +159,7 @@ abstract class BasicWasmBoxTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private inner class TestFileFactoryImpl : TestFiles.TestFileFactoryNoModules<TestFile>(), Closeable {
|
private inner class TestFileFactoryImpl : TestFiles.TestFileFactoryNoModules<TestFile>(), Closeable {
|
||||||
override fun create(fileName: String, text: String, directives: MutableMap<String, String>): TestFile {
|
override fun create(fileName: String, text: String, directives: Directives): TestFile {
|
||||||
val ktFile = KtPsiFactory(project).createFile(text)
|
val ktFile = KtPsiFactory(project).createFile(text)
|
||||||
val boxFunction = ktFile.declarations.find { it is KtNamedFunction && it.name == TEST_FUNCTION }
|
val boxFunction = ktFile.declarations.find { it is KtNamedFunction && it.name == TEST_FUNCTION }
|
||||||
if (boxFunction != null) {
|
if (boxFunction != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user