From feb31b79de30c25382de1c9ef10c5a04b4a83ac5 Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Mon, 22 Aug 2022 13:04:20 +0200 Subject: [PATCH] [lc] support decompiled facade only for .class we have support only for KtClsFile (see decompiled light classes) so kotlin_builtins and kotlin_metadata should be ignored ^KT-53543 --- .../decompiled/light/classes/DecompiledLightClassesFactory.kt | 2 +- .../src/org/jetbrains/kotlin/asJava/KotlinAsJavaSupportBase.kt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/DecompiledLightClassesFactory.kt b/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/DecompiledLightClassesFactory.kt index 4ee840fb338..84f977f5d34 100644 --- a/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/DecompiledLightClassesFactory.kt +++ b/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/DecompiledLightClassesFactory.kt @@ -113,7 +113,7 @@ object DecompiledLightClassesFactory { ): KtLightClassForFacade? { assert(files.all(KtFile::isCompiled)) val file = files.firstOrNull { it.javaFileFacadeFqName == facadeClassFqName } as? KtClsFile - ?: error("Can't find the representative decompiled file for $facadeClassFqName") + ?: error("Can't find the representative decompiled file for $facadeClassFqName in ${files.map { it.name }}") return createLightClassForDecompiledKotlinFile(project, file) { kotlinClsFile, javaClsClass, classOrObject -> KtLightClassForDecompiledFacade(javaClsClass, javaClsClass.parent, kotlinClsFile, classOrObject, files) diff --git a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/KotlinAsJavaSupportBase.kt b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/KotlinAsJavaSupportBase.kt index 65a4cd42263..f0ae9db9565 100644 --- a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/KotlinAsJavaSupportBase.kt +++ b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/KotlinAsJavaSupportBase.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.psi.KtFile abstract class KotlinAsJavaSupportBase(protected val project: Project) : KotlinAsJavaSupport() { fun createLightFacade(file: KtFile): KtLightClassForFacade? { if (file.isScript()) return null + if (file.isCompiled && !file.name.endsWith(".class")) return null val module = file.findModule().takeIf { facadeIsApplicable(it, file) } ?: return null val facadeFqName = file.javaFileFacadeFqName