[Analysis API Standalone] index .knm files in KotlinStaticDeclarationProvider

so `FirSymbolNamesProvider` can know about them

^KT-62910
This commit is contained in:
Ilya Kirillov
2023-10-26 18:34:03 +02:00
committed by Space Team
parent 9c85857b68
commit 7c6870f8d2
4 changed files with 5 additions and 1 deletions
@@ -29,6 +29,7 @@ dependencies {
testImplementation(project(":analysis:decompiled:decompiler-to-file-stubs")) testImplementation(project(":analysis:decompiled:decompiler-to-file-stubs"))
testImplementation(project(":analysis:decompiled:light-classes-for-decompiled")) testImplementation(project(":analysis:decompiled:light-classes-for-decompiled"))
testImplementation(project(":analysis:decompiled:decompiler-to-psi")) testImplementation(project(":analysis:decompiled:decompiler-to-psi"))
testImplementation(project(":analysis:decompiled:native"))
testImplementation(projectTests(":analysis:analysis-test-framework")) testImplementation(projectTests(":analysis:analysis-test-framework"))
testImplementation(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false } testImplementation(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false }
testImplementation(toolsJar()) testImplementation(toolsJar())
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.analysis.api.lifetime.KtReadActionConfinementLifetim
import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.StandaloneProjectFactory import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.StandaloneProjectFactory
import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtualFileCache import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtualFileCache
import org.jetbrains.kotlin.analysis.decompiled.light.classes.DecompiledLightClassesFactory import org.jetbrains.kotlin.analysis.decompiled.light.classes.DecompiledLightClassesFactory
import org.jetbrains.kotlin.analysis.decompiler.konan.KlibMetaFileType
import org.jetbrains.kotlin.analysis.decompiler.psi.BuiltInDefinitionFile import org.jetbrains.kotlin.analysis.decompiler.psi.BuiltInDefinitionFile
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinBuiltInFileType import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinBuiltInFileType
import org.jetbrains.kotlin.analysis.decompiler.psi.file.KtClsFile import org.jetbrains.kotlin.analysis.decompiler.psi.file.KtClsFile
@@ -104,5 +105,6 @@ object AnalysisApiBaseTestServiceRegistrar: AnalysisApiTestServiceRegistrar() {
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) { override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
testServices.environmentManager.getApplicationEnvironment().registerFileType(KotlinBuiltInFileType, "kotlin_builtins") testServices.environmentManager.getApplicationEnvironment().registerFileType(KotlinBuiltInFileType, "kotlin_builtins")
testServices.environmentManager.getApplicationEnvironment().registerFileType(KotlinBuiltInFileType, "kotlin_metadata") testServices.environmentManager.getApplicationEnvironment().registerFileType(KotlinBuiltInFileType, "kotlin_metadata")
testServices.environmentManager.getApplicationEnvironment().registerFileType(KlibMetaFileType, "knm")
} }
} }
@@ -10,6 +10,7 @@ dependencies {
implementation(project(":analysis:project-structure")) implementation(project(":analysis:project-structure"))
implementation(project(":analysis:decompiled:decompiler-to-file-stubs")) implementation(project(":analysis:decompiled:decompiler-to-file-stubs"))
implementation(project(":analysis:decompiled:decompiler-to-psi")) implementation(project(":analysis:decompiled:decompiler-to-psi"))
implementation(project(":analysis:decompiled:native"))
implementation(intellijCore()) implementation(intellijCore())
} }
@@ -340,7 +340,7 @@ public class KotlinStaticDeclarationProviderFactory(
&& file.extension != BuiltInSerializerProtocol.BUILTINS_FILE_EXTENSION -> { && file.extension != BuiltInSerializerProtocol.BUILTINS_FILE_EXTENSION -> {
builtInDecompiler.stubBuilder builtInDecompiler.stubBuilder
} }
fileType == KlibMetaFileType -> K2KotlinNativeMetadataDecompiler().stubBuilder
else -> return null else -> return null
} }
return stubBuilder.buildFileStub(fileContent) as? KotlinFileStubImpl return stubBuilder.buildFileStub(fileContent) as? KotlinFileStubImpl