diff --git a/compiler/testData/diagnostics/helpers/inference/inferenceUtils.kt b/compiler/testData/diagnostics/helpers/inference/inferenceUtils.kt new file mode 100644 index 00000000000..29c941d6fb7 --- /dev/null +++ b/compiler/testData/diagnostics/helpers/inference/inferenceUtils.kt @@ -0,0 +1,3 @@ +fun id(x: K): K = x +fun materialize(): K = null!! +fun select(vararg values: K): K = values[0] diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/AdditionalFilesDirectives.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/AdditionalFilesDirectives.kt index 74e4d356c9d..0821ddc2f01 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/AdditionalFilesDirectives.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/AdditionalFilesDirectives.kt @@ -44,4 +44,11 @@ object AdditionalFilesDirectives : SimpleDirectivesContainer() { See directory ./compiler/tests-spec/helpers/ """.trimIndent() ) + + val INFERENCE_HELPERS by directive( + description = """ + Adds util functions for type checking + See file ./compiler/testData/diagnostics/helpers/inference/inferenceUtils.kt + """.trimIndent() + ) } diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/sourceProviders/AdditionalDiagnosticsSourceFilesProvider.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/sourceProviders/AdditionalDiagnosticsSourceFilesProvider.kt index 57290e22d28..760b062dae7 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/sourceProviders/AdditionalDiagnosticsSourceFilesProvider.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/sourceProviders/AdditionalDiagnosticsSourceFilesProvider.kt @@ -6,8 +6,11 @@ package org.jetbrains.kotlin.test.services.sourceProviders import org.jetbrains.kotlin.test.directives.AdditionalFilesDirectives +import org.jetbrains.kotlin.test.directives.AdditionalFilesDirectives.CHECK_TYPE +import org.jetbrains.kotlin.test.directives.AdditionalFilesDirectives.INFERENCE_HELPERS import org.jetbrains.kotlin.test.directives.model.DirectivesContainer import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives +import org.jetbrains.kotlin.test.directives.model.SimpleDirective import org.jetbrains.kotlin.test.model.TestFile import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.AdditionalSourceProvider @@ -17,7 +20,10 @@ import java.io.File class AdditionalDiagnosticsSourceFilesProvider(testServices: TestServices) : AdditionalSourceProvider(testServices) { companion object { private const val HELPERS_PATH = "./compiler/testData/diagnostics/helpers" - private const val CHECK_TYPE_PATH = "$HELPERS_PATH/types/checkType.kt" + private val DIRECTIVE_TO_FILE_MAP: Map = mapOf( + CHECK_TYPE to "$HELPERS_PATH/types/checkType.kt", + INFERENCE_HELPERS to "$HELPERS_PATH/inference/inferenceUtils.kt" + ) } override val directives: List = @@ -26,8 +32,10 @@ class AdditionalDiagnosticsSourceFilesProvider(testServices: TestServices) : Add @OptIn(ExperimentalStdlibApi::class) override fun produceAdditionalFiles(globalDirectives: RegisteredDirectives, module: TestModule): List { return buildList { - if (containsDirective(globalDirectives, module, AdditionalFilesDirectives.CHECK_TYPE)) { - add(File(CHECK_TYPE_PATH).toTestFile()) + for ((directive, path) in DIRECTIVE_TO_FILE_MAP) { + if (directive in module.directives) { + add(File(path).toTestFile()) + } } } }