From de8a19d085cc99fa3b996a9230ad7a03e0917a68 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Thu, 17 Nov 2022 14:01:13 +0100 Subject: [PATCH] [SLC] add ktModule to SymbolLightParameterBase ^KT-54051 --- .../classes/symbol/methods/SymbolLightAccessorMethod.kt | 1 - .../light/classes/symbol/methods/SymbolLightMethod.kt | 1 - .../classes/symbol/methods/SymbolLightNoArgConstructor.kt | 2 +- .../classes/symbol/parameters/SymbolLightParameterBase.kt | 4 +++- .../symbol/parameters/SymbolLightParameterForReceiver.kt | 6 +----- .../classes/symbol/parameters/SymbolLightParameterList.kt | 4 +--- .../parameters/SymbolLightSuspendContinuationParameter.kt | 2 -- 7 files changed, 6 insertions(+), 14 deletions(-) diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt index 8d8c6ca4d8f..d551714e9db 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt @@ -238,7 +238,6 @@ internal class SymbolLightAccessorMethod( } SymbolLightParameterList( - ktModule = ktModule, parent = this@SymbolLightAccessorMethod, callableWithReceiverSymbolPointer = containingPropertySymbolPointer, parameterPopulator = parameterPopulator, diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt index 73e09913c56..c8b70504881 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt @@ -59,7 +59,6 @@ internal abstract class SymbolLightMethod( private val _parametersList by lazyPub { SymbolLightParameterList( - ktModule = ktModule, parent = this@SymbolLightMethod, callableWithReceiverSymbolPointer = functionSymbolPointer, ) { builder -> diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightNoArgConstructor.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightNoArgConstructor.kt index c1b725c1cbf..9d925614940 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightNoArgConstructor.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightNoArgConstructor.kt @@ -44,7 +44,7 @@ internal class SymbolLightNoArgConstructor( override fun getModifierList(): PsiModifierList = _modifierList private val _parameterList: PsiParameterList by lazyPub { - SymbolLightParameterList(ktModule = ktModule, parent = this@SymbolLightNoArgConstructor) + SymbolLightParameterList(parent = this@SymbolLightNoArgConstructor) } override fun getParameterList(): PsiParameterList = _parameterList diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterBase.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterBase.kt index 58296bca5d7..a52a4a289d0 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterBase.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterBase.kt @@ -10,6 +10,7 @@ import com.intellij.psi.* import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.SearchScope import com.intellij.util.IncorrectOperationException +import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.asJava.elements.* import org.jetbrains.kotlin.light.classes.symbol.basicIsEquivalentTo import org.jetbrains.kotlin.light.classes.symbol.invalidAccess @@ -18,6 +19,7 @@ import org.jetbrains.kotlin.psi.KtParameter internal abstract class SymbolLightParameterBase(containingDeclaration: SymbolLightMethodBase) : PsiVariable, NavigationItem, KtLightElement, KtLightParameter, KtLightElementBase(containingDeclaration) { + protected val ktModule: KtModule get() = method.ktModule override val givenAnnotations: List get() = invalidAccess() @@ -37,7 +39,7 @@ internal abstract class SymbolLightParameterBase(containingDeclaration: SymbolLi override fun setName(p0: String): PsiElement = TODO() //cannotModify() - override val method: KtLightMethod = containingDeclaration + override val method: SymbolLightMethodBase = containingDeclaration override fun getDeclarationScope(): KtLightMethod = method diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterForReceiver.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterForReceiver.kt index 9c41f79d4e6..a848e442a69 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterForReceiver.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterForReceiver.kt @@ -16,7 +16,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.markers.KtNamedSymbol import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.analysis.api.symbols.receiverType import org.jetbrains.kotlin.analysis.api.types.KtType -import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.codegen.AsmUtil import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolLightAnnotationForAnnotationCall @@ -31,7 +30,6 @@ import org.jetbrains.kotlin.light.classes.symbol.restoreSymbolOrThrowIfDisposed import org.jetbrains.kotlin.psi.KtParameter internal class SymbolLightParameterForReceiver private constructor( - private val ktModule: KtModule, private val callableSymbolWithReceiverPointer: KtSymbolPointer, methodName: String, method: SymbolLightMethodBase @@ -45,11 +43,10 @@ internal class SymbolLightParameterForReceiver private constructor( companion object { fun tryGet( - ktModule: KtModule, callableSymbolPointer: KtSymbolPointer, method: SymbolLightMethodBase ): SymbolLightParameterForReceiver? { - val methodName = analyzeForLightClasses(ktModule) { + val methodName = analyzeForLightClasses(method.ktModule) { val callableSymbol = callableSymbolPointer.restoreSymbolOrThrowIfDisposed() if (callableSymbol !is KtNamedSymbol) return@analyzeForLightClasses null if (!callableSymbol.isExtension || callableSymbol.receiverType == null) return@analyzeForLightClasses null @@ -57,7 +54,6 @@ internal class SymbolLightParameterForReceiver private constructor( } ?: return null return SymbolLightParameterForReceiver( - ktModule = ktModule, callableSymbolWithReceiverPointer = callableSymbolPointer, methodName = methodName, method = method, diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterList.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterList.kt index 7ce3dd6b90e..d5891dc32cc 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterList.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterList.kt @@ -10,7 +10,6 @@ import com.intellij.psi.PsiParameterList import com.intellij.psi.impl.light.LightParameterListBuilder import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer -import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.asJava.elements.KtLightElement import org.jetbrains.kotlin.asJava.elements.KtLightElementBase import org.jetbrains.kotlin.light.classes.symbol.allowLightClassesOnEdt @@ -19,7 +18,6 @@ import org.jetbrains.kotlin.psi.KtFunction import org.jetbrains.kotlin.psi.KtParameterList internal class SymbolLightParameterList( - private val ktModule: KtModule, private val parent: SymbolLightMethodBase, private val callableWithReceiverSymbolPointer: KtSymbolPointer? = null, parameterPopulator: (LightParameterListBuilder) -> Unit = {}, @@ -36,7 +34,7 @@ internal class SymbolLightParameterList( val builder = LightParameterListBuilder(manager, language) callableWithReceiverSymbolPointer?.let { - SymbolLightParameterForReceiver.tryGet(ktModule, it, parent)?.let { receiver -> + SymbolLightParameterForReceiver.tryGet(it, parent)?.let { receiver -> builder.addParameter(receiver) } } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightSuspendContinuationParameter.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightSuspendContinuationParameter.kt index 6f1e5186b15..b0151fd9a5d 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightSuspendContinuationParameter.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightSuspendContinuationParameter.kt @@ -30,8 +30,6 @@ internal class SymbolLightSuspendContinuationParameter( private val functionSymbolPointer: KtSymbolPointer, private val containingMethod: SymbolLightMethodBase, ) : SymbolLightParameterBase(containingMethod) { - private val ktModule get() = containingMethod.ktModule - private inline fun withFunctionSymbol(crossinline action: context(KtAnalysisSession) (KtFunctionSymbol) -> T): T { return analyzeForLightClasses(ktModule) { action(this, functionSymbolPointer.restoreSymbolOrThrowIfDisposed())