[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
This commit is contained in:
Dmitry Gridin
2022-08-22 13:04:20 +02:00
committed by Space
parent 031edb7344
commit feb31b79de
2 changed files with 2 additions and 1 deletions
@@ -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)
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.psi.KtFile
abstract class KotlinAsJavaSupportBase<TModule>(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