[SLC] add ktModule to SymbolLightParameterBase
^KT-54051
This commit is contained in:
committed by
Space Team
parent
98cf8a4333
commit
de8a19d085
-1
@@ -238,7 +238,6 @@ internal class SymbolLightAccessorMethod(
|
||||
}
|
||||
|
||||
SymbolLightParameterList(
|
||||
ktModule = ktModule,
|
||||
parent = this@SymbolLightAccessorMethod,
|
||||
callableWithReceiverSymbolPointer = containingPropertySymbolPointer,
|
||||
parameterPopulator = parameterPopulator,
|
||||
|
||||
-1
@@ -59,7 +59,6 @@ internal abstract class SymbolLightMethod<FType : KtFunctionLikeSymbol>(
|
||||
|
||||
private val _parametersList by lazyPub {
|
||||
SymbolLightParameterList(
|
||||
ktModule = ktModule,
|
||||
parent = this@SymbolLightMethod,
|
||||
callableWithReceiverSymbolPointer = functionSymbolPointer,
|
||||
) { builder ->
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+3
-1
@@ -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
|
||||
|
||||
|
||||
+1
-5
@@ -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,
|
||||
|
||||
+1
-3
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
-2
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user