[MPP] Improve readability of MultiplatformDiagnosticsDirectives

- Improved description as suggested during code review
- Renamed MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE du *_ENABLED

^KT-50120
This commit is contained in:
sebastian.sellmair
2021-12-18 08:45:15 +01:00
committed by Space
parent 6268852b7a
commit 381a3e7917
4 changed files with 10 additions and 9 deletions
@@ -9,10 +9,11 @@ import org.jetbrains.kotlin.test.directives.model.DirectiveApplicability
import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer
object MultiplatformDiagnosticsDirectives : SimpleDirectivesContainer() { object MultiplatformDiagnosticsDirectives : SimpleDirectivesContainer() {
val MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE by directive( val MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE_ENABLED by directive(
description = """ description = """
Will setup the classical frontend similar to 'CLI metadata compilation' or 'IDE analysis' where dependsOn sources If present, sets up the classical frontend in a way, similar to how analysis works in IDE, when dependsOn sources are located
are located in separate module descriptors. in separate module descriptors. If absent, setups the frontend in a "CLI-mode", when there's only two modules:
one with currently compiled sources (including dependsOn-sources), and the second one with all dependencies.
""".trimIndent(), """.trimIndent(),
applicability = DirectiveApplicability.Global applicability = DirectiveApplicability.Global
) )
@@ -61,7 +61,7 @@ import org.jetbrains.kotlin.serialization.deserialization.MetadataPartProvider
import org.jetbrains.kotlin.storage.LockBasedStorageManager import org.jetbrains.kotlin.storage.LockBasedStorageManager
import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.storage.StorageManager
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives
import org.jetbrains.kotlin.test.directives.MultiplatformDiagnosticsDirectives.MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE import org.jetbrains.kotlin.test.directives.MultiplatformDiagnosticsDirectives.MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE_ENABLED
import org.jetbrains.kotlin.test.model.DependencyRelation import org.jetbrains.kotlin.test.model.DependencyRelation
import org.jetbrains.kotlin.test.model.FrontendFacade import org.jetbrains.kotlin.test.model.FrontendFacade
import org.jetbrains.kotlin.test.model.FrontendKinds import org.jetbrains.kotlin.test.model.FrontendKinds
@@ -347,8 +347,8 @@ class ClassicFrontendFacade(
files: List<KtFile>, files: List<KtFile>,
): AnalysisResult { ): AnalysisResult {
// See 'TODO' for adding dependency manager // See 'TODO' for adding dependency manager
require(module.dependsOnDependencies.isEmpty() || MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE !in module.directives) { require(module.dependsOnDependencies.isEmpty() || MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE_ENABLED !in module.directives) {
"Analyzing common modules with 'dependsOn' edges in ${MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE.name} is not supported yet.\n" + "Analyzing common modules with 'dependsOn' edges in ${MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE_ENABLED.name} is not supported yet.\n" +
"Module: ${module.name}\n" + "Module: ${module.name}\n" +
"dependsOn: ${module.dependsOnDependencies.map { it.moduleName }}" "dependsOn: ${module.dependsOnDependencies.map { it.moduleName }}"
} }
@@ -18,12 +18,12 @@ import org.jetbrains.kotlin.resolve.ModulePath
import org.jetbrains.kotlin.resolve.ModuleStructureOracle import org.jetbrains.kotlin.resolve.ModuleStructureOracle
import org.jetbrains.kotlin.resolve.TargetEnvironment import org.jetbrains.kotlin.resolve.TargetEnvironment
import org.jetbrains.kotlin.resolve.multiplatform.isCommonSource import org.jetbrains.kotlin.resolve.multiplatform.isCommonSource
import org.jetbrains.kotlin.test.directives.MultiplatformDiagnosticsDirectives.MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE import org.jetbrains.kotlin.test.directives.MultiplatformDiagnosticsDirectives.MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE_ENABLED
import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.model.*
import org.jetbrains.kotlin.test.services.* import org.jetbrains.kotlin.test.services.*
internal fun MultiplatformAnalysisConfiguration(testServices: TestServices): MultiplatformAnalysisConfiguration { internal fun MultiplatformAnalysisConfiguration(testServices: TestServices): MultiplatformAnalysisConfiguration {
return if (testServices.moduleStructure.allDirectives.contains(MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE)) return if (testServices.moduleStructure.allDirectives.contains(MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE_ENABLED))
MultiplatformCompositeAnalysisConfiguration( MultiplatformCompositeAnalysisConfiguration(
testServices.dependencyProvider, testServices.dependencyProvider,
testServices.sourceFileProvider, testServices.sourceFileProvider,
@@ -13,7 +13,7 @@ abstract class AbstractDiagnosticsWithMultiplatformCompositeAnalysisTest : Abstr
override fun configure(builder: TestConfigurationBuilder) { override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder) super.configure(builder)
builder.defaultDirectives { builder.defaultDirectives {
+MultiplatformDiagnosticsDirectives.MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE +MultiplatformDiagnosticsDirectives.MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE_ENABLED
LanguageSettingsDirectives.LANGUAGE with "+MultiPlatformProjects" LanguageSettingsDirectives.LANGUAGE with "+MultiPlatformProjects"
} }
} }