[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
object MultiplatformDiagnosticsDirectives : SimpleDirectivesContainer() {
val MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE by directive(
val MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE_ENABLED by directive(
description = """
Will setup the classical frontend similar to 'CLI metadata compilation' or 'IDE analysis' where dependsOn sources
are located in separate module descriptors.
If present, sets up the classical frontend in a way, similar to how analysis works in IDE, when dependsOn sources are located
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(),
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.StorageManager
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.FrontendFacade
import org.jetbrains.kotlin.test.model.FrontendKinds
@@ -347,8 +347,8 @@ class ClassicFrontendFacade(
files: List<KtFile>,
): AnalysisResult {
// See 'TODO' for adding dependency manager
require(module.dependsOnDependencies.isEmpty() || MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE !in module.directives) {
"Analyzing common modules with 'dependsOn' edges in ${MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE.name} is not supported yet.\n" +
require(module.dependsOnDependencies.isEmpty() || MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE_ENABLED !in module.directives) {
"Analyzing common modules with 'dependsOn' edges in ${MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE_ENABLED.name} is not supported yet.\n" +
"Module: ${module.name}\n" +
"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.TargetEnvironment
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.services.*
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(
testServices.dependencyProvider,
testServices.sourceFileProvider,
@@ -13,7 +13,7 @@ abstract class AbstractDiagnosticsWithMultiplatformCompositeAnalysisTest : Abstr
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.defaultDirectives {
+MultiplatformDiagnosticsDirectives.MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE
+MultiplatformDiagnosticsDirectives.MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE_ENABLED
LanguageSettingsDirectives.LANGUAGE with "+MultiPlatformProjects"
}
}