diff --git a/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt b/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt index cf33de24132..b587492c564 100644 --- a/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt +++ b/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt @@ -15,7 +15,10 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.codegen.CodegenTestFiles import org.jetbrains.kotlin.codegen.GenerationUtils import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime -import org.jetbrains.kotlin.config.* +import org.jetbrains.kotlin.config.CommonConfigurationKeys +import org.jetbrains.kotlin.config.CompilerConfiguration +import org.jetbrains.kotlin.config.JvmTarget +import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.platform.jvm.JvmPlatforms import org.jetbrains.kotlin.psi.KtFile @@ -28,7 +31,6 @@ import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest import org.jetbrains.kotlin.test.services.* import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator import org.jetbrains.kotlin.test.services.configuration.JvmEnvironmentConfigurator -import org.jetbrains.kotlin.test.services.impl.BackendKindExtractorImpl import org.jetbrains.kotlin.test.services.impl.TemporaryDirectoryManagerImpl import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider import org.jetbrains.kotlin.test.services.sourceProviders.CodegenHelpersSourceFilesProvider @@ -408,7 +410,6 @@ class CodegenTestsOnAndroidGenerator private constructor(private val pathManager assertions = JUnit5Assertions useAdditionalService(::TemporaryDirectoryManagerImpl) - useAdditionalService(::BackendKindExtractorImpl) useSourcePreprocessor(*AbstractKotlinCompilerTest.defaultPreprocessors.toTypedArray()) useDirectives(*AbstractKotlinCompilerTest.defaultDirectiveContainers.toTypedArray()) } diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/model/Facades.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/model/Facades.kt index a743d97cd48..72137537d6c 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/model/Facades.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/model/Facades.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.test.model import org.jetbrains.kotlin.test.directives.model.DirectivesContainer import org.jetbrains.kotlin.test.services.ServiceRegistrationData import org.jetbrains.kotlin.test.services.TestServices -import org.jetbrains.kotlin.test.services.backendKindExtractor interface ServicesAndDirectivesContainer { val additionalServices: List @@ -51,7 +50,7 @@ abstract class Frontend2BackendConverter final override val outputKind: BackendKind ) : AbstractTestFacade() { override fun shouldRunAnalysis(module: TestModule): Boolean { - return testServices.backendKindExtractor.backendKind(module.targetBackend) == outputKind + return module.backendKind == outputKind } } @@ -61,6 +60,6 @@ abstract class BackendFacade, A : Resultin final override val outputKind: BinaryKind ) : AbstractTestFacade() { override fun shouldRunAnalysis(module: TestModule): Boolean { - return testServices.backendKindExtractor.backendKind(module.targetBackend) == inputKind && module.binaryKind == outputKind + return module.backendKind == inputKind && module.binaryKind == outputKind } } diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/model/Modules.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/model/Modules.kt index 242a16fb691..3ca145be8bd 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/model/Modules.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/model/Modules.kt @@ -16,6 +16,7 @@ data class TestModule( val targetPlatform: TargetPlatform, val targetBackend: TargetBackend?, val frontendKind: FrontendKind<*>, + val backendKind: BackendKind<*>, val binaryKind: BinaryKind<*>, val files: List, val allDependencies: List, diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/services/BackendKindExtractor.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/services/BackendKindExtractor.kt deleted file mode 100644 index 95b947e8c5e..00000000000 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/services/BackendKindExtractor.kt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * 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.services - -import org.jetbrains.kotlin.test.TargetBackend -import org.jetbrains.kotlin.test.model.BackendKind - -abstract class BackendKindExtractor(protected val testServices: TestServices) : TestService { - abstract fun backendKind(targetBackend: TargetBackend?): BackendKind<*> -} - -val TestServices.backendKindExtractor: BackendKindExtractor by TestServices.testServiceAccessor() diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/model/TestArtifactKinds.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/model/TestArtifactKinds.kt index 72c0974413e..809c262ace2 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/model/TestArtifactKinds.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/model/TestArtifactKinds.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.test.model +import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.backend.classic.ClassicBackendInput import org.jetbrains.kotlin.test.backend.ir.IrBackendInput import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact @@ -34,6 +35,12 @@ object BackendKinds { else -> null } } + + fun fromTargetBackend(targetBackend: TargetBackend?): BackendKind<*> { + if (targetBackend == null) return BackendKind.NoBackend + return if (targetBackend.isIR) IrBackend + else ClassicBackend + } } object ArtifactKinds { diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractKotlinCompilerTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractKotlinCompilerTest.kt index 86d1d16cbe2..045b197685f 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractKotlinCompilerTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractKotlinCompilerTest.kt @@ -13,13 +13,11 @@ import org.jetbrains.kotlin.test.directives.ConfigurationDirectives import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives import org.jetbrains.kotlin.test.model.ResultingArtifact import org.jetbrains.kotlin.test.preprocessors.MetaInfosCleanupPreprocessor -import org.jetbrains.kotlin.test.services.* -import org.jetbrains.kotlin.test.services.impl.TemporaryDirectoryManagerImpl -import org.jetbrains.kotlin.test.services.BackendKindExtractor import org.jetbrains.kotlin.test.services.JUnit5Assertions -import org.jetbrains.kotlin.test.services.SourceFilePreprocessor import org.jetbrains.kotlin.test.services.KotlinTestInfo -import org.jetbrains.kotlin.test.services.impl.BackendKindExtractorImpl +import org.jetbrains.kotlin.test.services.SourceFilePreprocessor +import org.jetbrains.kotlin.test.services.TemporaryDirectoryManager +import org.jetbrains.kotlin.test.services.impl.TemporaryDirectoryManagerImpl import org.jetbrains.kotlin.types.AbstractTypeChecker import org.jetbrains.kotlin.types.FlexibleTypeImpl import org.junit.jupiter.api.BeforeEach @@ -43,7 +41,6 @@ abstract class AbstractKotlinCompilerTest { val defaultConfiguration: TestConfigurationBuilder.() -> Unit = { useAdditionalService(::TemporaryDirectoryManagerImpl) - useAdditionalService(::BackendKindExtractorImpl) useSourcePreprocessor(*defaultPreprocessors.toTypedArray()) useDirectives(*defaultDirectiveContainers.toTypedArray()) configureDebugFlags() diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/ModuleTransformerForSwitchingBackend.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/ModuleTransformerForSwitchingBackend.kt index 134d00d2022..e2e6f69bc36 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/ModuleTransformerForSwitchingBackend.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/ModuleTransformerForSwitchingBackend.kt @@ -7,10 +7,7 @@ package org.jetbrains.kotlin.test.services import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.TestInfrastructureInternals -import org.jetbrains.kotlin.test.model.DependencyDescription -import org.jetbrains.kotlin.test.model.DependencyKind -import org.jetbrains.kotlin.test.model.DependencyRelation -import org.jetbrains.kotlin.test.model.TestModule +import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.services.impl.TestModuleStructureImpl /** @@ -28,8 +25,8 @@ class ModuleTransformerForSwitchingBackend( return TestModuleStructureImpl( listOf( - first.copy(targetBackend = backendForLib), - second.copy(targetBackend = backendForMain) + first.copy(targetBackend = backendForLib, backendKind = BackendKinds.fromTargetBackend(backendForLib)), + second.copy(targetBackend = backendForMain, backendKind = BackendKinds.fromTargetBackend(backendForMain)) ), moduleStructure.originalTestDataFiles ) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/ModuleTransformerForTwoFilesBoxTests.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/ModuleTransformerForTwoFilesBoxTests.kt index 14e4c15bf23..5a8bb67e004 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/ModuleTransformerForTwoFilesBoxTests.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/ModuleTransformerForTwoFilesBoxTests.kt @@ -32,6 +32,7 @@ class ModuleTransformerForTwoFilesBoxTests : ModuleStructureTransformer() { module.targetPlatform, module.targetBackend, module.frontendKind, + module.backendKind, module.binaryKind, files = listOf(first) + additionalFiles, allDependencies = emptyList(), @@ -44,6 +45,7 @@ class ModuleTransformerForTwoFilesBoxTests : ModuleStructureTransformer() { module.targetPlatform, module.targetBackend, module.frontendKind, + module.backendKind, module.binaryKind, files = listOf(second) + additionalFiles, allDependencies = listOf(DependencyDescription("lib", DependencyKind.Binary, DependencyRelation.FriendDependency)), diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/BackendKindExtractorImpl.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/BackendKindExtractorImpl.kt deleted file mode 100644 index 7c4c73b3cc6..00000000000 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/impl/BackendKindExtractorImpl.kt +++ /dev/null @@ -1,20 +0,0 @@ -/* - * 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.services.impl - -import org.jetbrains.kotlin.test.TargetBackend -import org.jetbrains.kotlin.test.model.BackendKind -import org.jetbrains.kotlin.test.model.BackendKinds -import org.jetbrains.kotlin.test.services.BackendKindExtractor -import org.jetbrains.kotlin.test.services.TestServices - -class BackendKindExtractorImpl(testServices: TestServices) : BackendKindExtractor(testServices) { - override fun backendKind(targetBackend: TargetBackend?): BackendKind<*> { - if (targetBackend == null) return BackendKind.NoBackend - return if (targetBackend.isIR) BackendKinds.IrBackend - else BackendKinds.ClassicBackend - } -} 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 2246d3decd4..aad2f30ecd7 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 @@ -307,6 +307,7 @@ class ModuleStructureExtractorImpl( targetPlatform = targetPlatform, targetBackend = targetBackend, frontendKind = currentModuleFrontendKind ?: defaultsProvider.defaultFrontend, + backendKind = BackendKinds.fromTargetBackend(targetBackend), binaryKind = defaultsProvider.defaultArtifactKind ?: targetPlatform.toArtifactKind(), files = filesOfCurrentModule, allDependencies = dependenciesOfCurrentModule, diff --git a/compiler/visualizer/tests/org/jetbrains/kotlin/visualizer/AbstractVisualizerBlackBoxTest.kt b/compiler/visualizer/tests/org/jetbrains/kotlin/visualizer/AbstractVisualizerBlackBoxTest.kt index de421e6c844..ee9764b2bd2 100644 --- a/compiler/visualizer/tests/org/jetbrains/kotlin/visualizer/AbstractVisualizerBlackBoxTest.kt +++ b/compiler/visualizer/tests/org/jetbrains/kotlin/visualizer/AbstractVisualizerBlackBoxTest.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest import org.jetbrains.kotlin.test.services.* import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator import org.jetbrains.kotlin.test.services.configuration.JvmEnvironmentConfigurator -import org.jetbrains.kotlin.test.services.impl.BackendKindExtractorImpl import org.jetbrains.kotlin.test.services.impl.TemporaryDirectoryManagerImpl import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider import org.jetbrains.kotlin.test.services.sourceProviders.CodegenHelpersSourceFilesProvider @@ -37,7 +36,6 @@ abstract class AbstractVisualizerBlackBoxTest { startingArtifactFactory = { ResultingArtifact.Source() } useAdditionalService(::TemporaryDirectoryManagerImpl) - useAdditionalService(::BackendKindExtractorImpl) useSourcePreprocessor(*AbstractKotlinCompilerTest.defaultPreprocessors.toTypedArray()) useDirectives(*AbstractKotlinCompilerTest.defaultDirectiveContainers.toTypedArray())