[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:
+1
-1
@@ -113,7 +113,7 @@ object DecompiledLightClassesFactory {
|
|||||||
): KtLightClassForFacade? {
|
): KtLightClassForFacade? {
|
||||||
assert(files.all(KtFile::isCompiled))
|
assert(files.all(KtFile::isCompiled))
|
||||||
val file = files.firstOrNull { it.javaFileFacadeFqName == facadeClassFqName } as? KtClsFile
|
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 ->
|
return createLightClassForDecompiledKotlinFile(project, file) { kotlinClsFile, javaClsClass, classOrObject ->
|
||||||
KtLightClassForDecompiledFacade(javaClsClass, javaClsClass.parent, kotlinClsFile, classOrObject, files)
|
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() {
|
abstract class KotlinAsJavaSupportBase<TModule>(protected val project: Project) : KotlinAsJavaSupport() {
|
||||||
fun createLightFacade(file: KtFile): KtLightClassForFacade? {
|
fun createLightFacade(file: KtFile): KtLightClassForFacade? {
|
||||||
if (file.isScript()) return null
|
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 module = file.findModule().takeIf { facadeIsApplicable(it, file) } ?: return null
|
||||||
val facadeFqName = file.javaFileFacadeFqName
|
val facadeFqName = file.javaFileFacadeFqName
|
||||||
|
|||||||
Reference in New Issue
Block a user