From b91a23be120aa97733a3c7312349300ca5f0f789 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Mon, 5 Jun 2023 23:34:27 -0700 Subject: [PATCH] Reintroduce KtLightClassForScript as a common interface between (U|S)LC ...so that UAST's conversion to KotlinScriptUClass can work for both LCs --- .../asJava/classes/KtLightClassForScript.kt | 20 +++++++++++++++++++ .../classes/KtLightClassForScriptBase.kt | 10 +++------- .../classes/SymbolLightClassForScript.kt | 9 ++------- 3 files changed, 25 insertions(+), 14 deletions(-) create mode 100644 analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt diff --git a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt new file mode 100644 index 00000000000..2db6c0ade2b --- /dev/null +++ b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScript.kt @@ -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 +} \ No newline at end of file diff --git a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScriptBase.kt b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScriptBase.kt index 931b5d86ebe..b0ef74f5b87 100644 --- a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScriptBase.kt +++ b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForScriptBase.kt @@ -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 diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForScript.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForScript.kt index f479b0fe73f..374b3c61a67 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForScript.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForScript.kt @@ -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, 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 } \ No newline at end of file