From a106ec65309ddadeefe1220f6d6596c09af5b406 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Mon, 7 Mar 2022 23:25:49 -0800 Subject: [PATCH] Do not create FastJarFileSystem when USE_PSI_CLASS_FILES_READING because the intention of that configuration is to use "slower" class reading. In the near future, even though FIR is enabled, which uses experimental faster jar file system, FIR clients (e.g., FIR UAST or Android Lint) may still need to use slower class reading. So, we need to handle that configuration before checking others. --- .../AbstractStandaloneModeSingleModuleTest.kt | 10 ++++++++++ .../testData/standalone/singleModule/todo.txt | 1 + .../kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt | 3 +++ 3 files changed, 14 insertions(+) diff --git a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/AbstractStandaloneModeSingleModuleTest.kt b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/AbstractStandaloneModeSingleModuleTest.kt index d8a270663f3..35da166940a 100644 --- a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/AbstractStandaloneModeSingleModuleTest.kt +++ b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/AbstractStandaloneModeSingleModuleTest.kt @@ -14,11 +14,21 @@ import org.jetbrains.kotlin.analysis.api.impl.base.test.findReferencesAtCaret import org.jetbrains.kotlin.analysis.api.impl.base.test.test.framework.AbstractHLApiSingleModuleTest import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder +import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions abstract class AbstractStandaloneModeSingleModuleTest : AbstractHLApiSingleModuleTest() { + override fun configureTest(builder: TestConfigurationBuilder) { + super.configureTest(builder) + with(builder) { + defaultDirectives { + +JvmEnvironmentConfigurationDirectives.USE_PSI_CLASS_FILES_READING + } + } + } override fun doTestByFileStructure(ktFiles: List, module: TestModule, testServices: TestServices) { val mainKtFile = ktFiles.singleOrNull() ?: ktFiles.first { it.name == "main.kt" } diff --git a/analysis/analysis-api/testData/standalone/singleModule/todo.txt b/analysis/analysis-api/testData/standalone/singleModule/todo.txt index 5450dae9b91..f3436bcd847 100644 --- a/analysis/analysis-api/testData/standalone/singleModule/todo.txt +++ b/analysis/analysis-api/testData/standalone/singleModule/todo.txt @@ -1 +1,2 @@ Resolved to: +0: (in kotlin) inline fun TODO(reason: kotlin.String): kotlin.Nothing diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt index 183470a42eb..15af17f0d17 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt @@ -131,6 +131,9 @@ class KotlinCoreEnvironment private constructor( } jarFileSystem = when { + configuration.getBoolean(JVMConfigurationKeys.USE_PSI_CLASS_FILES_READING) -> { + applicationEnvironment.jarFileSystem + } configuration.getBoolean(JVMConfigurationKeys.USE_FAST_JAR_FILE_SYSTEM) || configuration.getBoolean(CommonConfigurationKeys.USE_FIR) -> { val fastJarFs = FastJarFileSystem.createIfUnmappingPossible()