From a7961a4a45268427d63fb54736742a3a88441190 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Thu, 29 Jul 2021 18:57:09 +0300 Subject: [PATCH] [FIR MT] Add reading of packagePrefix from model of java roots --- .../AbstractFullPipelineModularizedTest.kt | 2 +- .../kotlin/fir/AbstractModularizedTest.kt | 26 ++++++++++++------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFullPipelineModularizedTest.kt b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFullPipelineModularizedTest.kt index dc425519f4a..a2fe6fc84f5 100644 --- a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFullPipelineModularizedTest.kt +++ b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFullPipelineModularizedTest.kt @@ -127,7 +127,7 @@ abstract class AbstractFullPipelineModularizedTest : AbstractModularizedTest() { args.reportPerf = true args.jvmTarget = "1.8" args.classpath = moduleData.classpath.joinToString(separator = ":") { it.absolutePath } - args.javaSourceRoots = moduleData.javaSourceRoots.map { it.absolutePath }.toTypedArray() + args.javaSourceRoots = moduleData.javaSourceRoots.map { it.path.absolutePath }.toTypedArray() args.allowKotlinPackage = true args.freeArgs = moduleData.sources.map { it.absolutePath } args.destination = tmp.toAbsolutePath().toFile().toString() diff --git a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractModularizedTest.kt b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractModularizedTest.kt index f3bd1fac071..da0dd537e12 100644 --- a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractModularizedTest.kt +++ b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractModularizedTest.kt @@ -7,9 +7,8 @@ package org.jetbrains.kotlin.fir import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot -import org.jetbrains.kotlin.cli.jvm.config.addJavaSourceRoots +import org.jetbrains.kotlin.cli.jvm.config.addJavaSourceRoot import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots -import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.fir.scopes.ProcessorAction @@ -30,7 +29,7 @@ data class ModuleData( val qualifier: String, val rawClasspath: List, val rawSources: List, - val rawJavaSourceRoots: List, + val rawJavaSourceRoots: List>, val rawFriendDirs: List, val rawModularJdkRoot: String?, val isCommon: Boolean @@ -40,11 +39,13 @@ data class ModuleData( val outputDir = rawOutputDir.fixPath() val classpath = rawClasspath.map { it.fixPath() } val sources = rawSources.map { it.fixPath() } - val javaSourceRoots = rawJavaSourceRoots.map { it.fixPath() } + val javaSourceRoots = rawJavaSourceRoots.map { JavaSourceRootData(it.path.fixPath(), it.packagePrefix) } val friendDirs = rawFriendDirs.map { it.fixPath() } val modularJdkRoot = rawModularJdkRoot?.fixPath() } +data class JavaSourceRootData(val path: Path, val packagePrefix: String?) + private fun String.fixPath(): File = File(ROOT_PATH_PREFIX, this.removePrefix("/")) private fun NodeList.toList(): List { @@ -92,12 +93,11 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() { fun createDefaultConfiguration(moduleData: ModuleData): CompilerConfiguration { val configuration = KotlinTestUtils.newConfiguration() - configuration.addJavaSourceRoots(moduleData.javaSourceRoots) + moduleData.javaSourceRoots.forEach { + configuration.addJavaSourceRoot(it.path, it.packagePrefix) + } configuration.addJvmClasspathRoots(moduleData.classpath) - // ignored for modular jdks - configuration.put(JVMConfigurationKeys.NO_JDK, true) - // in case of modular jdk only configuration.putIfNotNull(JVMConfigurationKeys.JDK_HOME, moduleData.modularJdkRoot) @@ -118,7 +118,7 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() { val moduleName = moduleElement.attributes.getNamedItem("name").nodeValue val outputDir = moduleElement.attributes.getNamedItem("outputDir").nodeValue val moduleNameQualifier = outputDir.substringAfterLast("/") - val javaSourceRoots = mutableListOf() + val javaSourceRoots = mutableListOf>() val classpath = mutableListOf() val sources = mutableListOf() val friendDirs = mutableListOf() @@ -140,7 +140,13 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() { val path = item.attributes.getNamedItem("path").nodeValue friendDirs += path } - "javaSourceRoots" -> javaSourceRoots += item.attributes.getNamedItem("path").nodeValue + "javaSourceRoots" -> { + javaSourceRoots += + JavaSourceRootData( + item.attributes.getNamedItem("path").nodeValue, + item.attributes.getNamedItem("packagePrefix")?.nodeValue, + ) + } "sources" -> sources += item.attributes.getNamedItem("path").nodeValue "commonSources" -> isCommon = true "modularJdkRoot" -> modularJdkRoot = item.attributes.getNamedItem("path").nodeValue