Reintroduce KtLightClassForScript as a common interface between (U|S)LC

...so that UAST's conversion to KotlinScriptUClass can work for both LCs
This commit is contained in:
Jinseong Jeon
2023-06-05 23:34:27 -07:00
committed by Ilya Kirillov
parent 618d6526a7
commit b91a23be12
3 changed files with 25 additions and 14 deletions
@@ -0,0 +1,20 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.asJava.classes
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtScript
interface KtLightClassForScript : KtLightClass {
val script: KtScript
override val kotlinOrigin: KtClassOrObject?
get() = null
override val originKind: LightClassOriginKind
get() = LightClassOriginKind.SOURCE
}
@@ -13,13 +13,13 @@ import com.intellij.util.IncorrectOperationException
import org.jetbrains.annotations.NonNls
import org.jetbrains.kotlin.asJava.elements.FakeFileForLightClass
import org.jetbrains.kotlin.idea.KotlinLanguage
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtScript
import javax.swing.Icon
abstract class KtLightClassForScriptBase(val script: KtScript) : KtLightClassBase(script.manager) {
abstract class KtLightClassForScriptBase(
override val script: KtScript
) : KtLightClassForScript, KtLightClassBase(script.manager) {
private val modifierList: PsiModifierList = LightModifierList(
manager,
KotlinLanguage.INSTANCE,
@@ -42,8 +42,6 @@ abstract class KtLightClassForScriptBase(val script: KtScript) : KtLightClassBas
)
}
override val kotlinOrigin: KtClassOrObject? get() = null
val fqName: FqName get() = script.fqName
override fun getModifierList() = modifierList
@@ -97,8 +95,6 @@ abstract class KtLightClassForScriptBase(val script: KtScript) : KtLightClassBas
override fun getElementIcon(flags: Int): Icon? =
throw UnsupportedOperationException("This should be done by KotlinIconProvider")
override val originKind: LightClassOriginKind get() = LightClassOriginKind.SOURCE
override fun getLBrace(): PsiElement? = null
override fun getRBrace(): PsiElement? = null
@@ -20,15 +20,13 @@ import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodForScr
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.InitializedModifiersBox
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList
import org.jetbrains.kotlin.light.classes.symbol.withSymbol
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtScript
internal class SymbolLightClassForScript private constructor(
private val script: KtScript,
override val script: KtScript,
private val symbolPointer: KtSymbolPointer<KtScriptSymbol>,
ktModule: KtModule,
) : SymbolLightClassBase(ktModule, script.manager) {
) : KtLightClassForScript, SymbolLightClassBase(ktModule, script.manager) {
internal constructor(
script: KtScript,
@@ -174,7 +172,4 @@ internal class SymbolLightClassForScript private constructor(
override fun isInheritorDeep(baseClass: PsiClass?, classToByPass: PsiClass?): Boolean = false
override val kotlinOrigin: KtClassOrObject? = null
override val originKind: LightClassOriginKind = LightClassOriginKind.SOURCE
}