[SLC] add ktModule to SymbolLightParameterBase

^KT-54051
This commit is contained in:
Dmitrii Gridin
2022-11-17 14:01:13 +01:00
committed by Space Team
parent 98cf8a4333
commit de8a19d085
7 changed files with 6 additions and 14 deletions
@@ -238,7 +238,6 @@ internal class SymbolLightAccessorMethod(
}
SymbolLightParameterList(
ktModule = ktModule,
parent = this@SymbolLightAccessorMethod,
callableWithReceiverSymbolPointer = containingPropertySymbolPointer,
parameterPopulator = parameterPopulator,
@@ -59,7 +59,6 @@ internal abstract class SymbolLightMethod<FType : KtFunctionLikeSymbol>(
private val _parametersList by lazyPub {
SymbolLightParameterList(
ktModule = ktModule,
parent = this@SymbolLightMethod,
callableWithReceiverSymbolPointer = functionSymbolPointer,
) { builder ->
@@ -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
@@ -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<KtParameter, PsiParameter>, KtLightParameter, KtLightElementBase(containingDeclaration) {
protected val ktModule: KtModule get() = method.ktModule
override val givenAnnotations: List<KtLightAbstractAnnotation>
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
@@ -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<KtCallableSymbol>,
methodName: String,
method: SymbolLightMethodBase
@@ -45,11 +43,10 @@ internal class SymbolLightParameterForReceiver private constructor(
companion object {
fun tryGet(
ktModule: KtModule,
callableSymbolPointer: KtSymbolPointer<KtCallableSymbol>,
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,
@@ -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<KtCallableSymbol>? = 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)
}
}
@@ -30,8 +30,6 @@ internal class SymbolLightSuspendContinuationParameter(
private val functionSymbolPointer: KtSymbolPointer<KtFunctionSymbol>,
private val containingMethod: SymbolLightMethodBase,
) : SymbolLightParameterBase(containingMethod) {
private val ktModule get() = containingMethod.ktModule
private inline fun <T> withFunctionSymbol(crossinline action: context(KtAnalysisSession) (KtFunctionSymbol) -> T): T {
return analyzeForLightClasses(ktModule) {
action(this, functionSymbolPointer.restoreSymbolOrThrowIfDisposed())