From 5072dd01ab72b9b6346f86c260994be3e73dffbe Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Fri, 8 Jul 2022 20:08:29 +0200 Subject: [PATCH] [light classes] move KtLightClassForScript to light-classes-base module ^KT-53097 --- .../kotlin/asJava/classes/KtLightClassForScript.kt | 9 --------- .../kotlin/asJava/classes/ultraLightClassForScript.kt | 11 +++++++++++ 2 files changed, 11 insertions(+), 9 deletions(-) rename compiler/{light-classes => light-classes-base}/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt (90%) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt b/compiler/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt similarity index 90% rename from compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt rename to compiler/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt index e5f96452bcc..cf043725401 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt +++ b/compiler/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt @@ -74,15 +74,6 @@ abstract class KtLightClassForScript(val script: KtScript) : KtLightClassBase(sc override fun getInterfaces(): Array = PsiClass.EMPTY_ARRAY - override fun getOwnInnerClasses(): List { - return script.declarations.filterIsInstance() - // workaround for ClassInnerStuffCache not supporting classes with null names, see KT-13927 - // inner classes with null names can't be searched for and can't be used from java anyway - // we can't prohibit creating light classes with null names either since they can contain members - .filter { it.name != null } - .mapNotNull { KotlinLightClassFactory.createClass(it) } - } - override fun getInitializers(): Array = PsiClassInitializer.EMPTY_ARRAY override fun getName() = script.fqName.shortName().asString() diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClassForScript.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClassForScript.kt index 0e5e4b2f525..b749ba496bb 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClassForScript.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClassForScript.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.asJava.classes +import com.intellij.psi.PsiClass import com.intellij.psi.PsiModifier import com.intellij.psi.PsiType import com.intellij.psi.impl.light.LightMethodBuilder @@ -14,6 +15,7 @@ import com.intellij.psi.util.CachedValuesManager import org.jetbrains.kotlin.analyzer.KotlinModificationTrackerService import org.jetbrains.kotlin.asJava.elements.KtLightField import org.jetbrains.kotlin.asJava.elements.KtLightMethod +import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.psi.KtProperty import org.jetbrains.kotlin.psi.KtScript @@ -127,4 +129,13 @@ class KtUltraLightClassForScript( override fun getOwnFields(): List = _ownFields override fun copy(): KtLightClassForScript = KtUltraLightClassForScript(script, support) + + override fun getOwnInnerClasses(): List { + return script.declarations.filterIsInstance() + // workaround for ClassInnerStuffCache not supporting classes with null names, see KT-13927 + // inner classes with null names can't be searched for and can't be used from java anyway + // we can't prohibit creating light classes with null names either since they can contain members + .filter { it.name != null } + .mapNotNull { KotlinLightClassFactory.createClass(it) } + } } \ No newline at end of file