[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(
|
SymbolLightParameterList(
|
||||||
ktModule = ktModule,
|
|
||||||
parent = this@SymbolLightAccessorMethod,
|
parent = this@SymbolLightAccessorMethod,
|
||||||
callableWithReceiverSymbolPointer = containingPropertySymbolPointer,
|
callableWithReceiverSymbolPointer = containingPropertySymbolPointer,
|
||||||
parameterPopulator = parameterPopulator,
|
parameterPopulator = parameterPopulator,
|
||||||
|
|||||||
-1
@@ -59,7 +59,6 @@ internal abstract class SymbolLightMethod<FType : KtFunctionLikeSymbol>(
|
|||||||
|
|
||||||
private val _parametersList by lazyPub {
|
private val _parametersList by lazyPub {
|
||||||
SymbolLightParameterList(
|
SymbolLightParameterList(
|
||||||
ktModule = ktModule,
|
|
||||||
parent = this@SymbolLightMethod,
|
parent = this@SymbolLightMethod,
|
||||||
callableWithReceiverSymbolPointer = functionSymbolPointer,
|
callableWithReceiverSymbolPointer = functionSymbolPointer,
|
||||||
) { builder ->
|
) { builder ->
|
||||||
|
|||||||
+1
-1
@@ -44,7 +44,7 @@ internal class SymbolLightNoArgConstructor(
|
|||||||
override fun getModifierList(): PsiModifierList = _modifierList
|
override fun getModifierList(): PsiModifierList = _modifierList
|
||||||
|
|
||||||
private val _parameterList: PsiParameterList by lazyPub {
|
private val _parameterList: PsiParameterList by lazyPub {
|
||||||
SymbolLightParameterList(ktModule = ktModule, parent = this@SymbolLightNoArgConstructor)
|
SymbolLightParameterList(parent = this@SymbolLightNoArgConstructor)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getParameterList(): PsiParameterList = _parameterList
|
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.LocalSearchScope
|
||||||
import com.intellij.psi.search.SearchScope
|
import com.intellij.psi.search.SearchScope
|
||||||
import com.intellij.util.IncorrectOperationException
|
import com.intellij.util.IncorrectOperationException
|
||||||
|
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||||
import org.jetbrains.kotlin.asJava.elements.*
|
import org.jetbrains.kotlin.asJava.elements.*
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.basicIsEquivalentTo
|
import org.jetbrains.kotlin.light.classes.symbol.basicIsEquivalentTo
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.invalidAccess
|
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,
|
internal abstract class SymbolLightParameterBase(containingDeclaration: SymbolLightMethodBase) : PsiVariable, NavigationItem,
|
||||||
KtLightElement<KtParameter, PsiParameter>, KtLightParameter, KtLightElementBase(containingDeclaration) {
|
KtLightElement<KtParameter, PsiParameter>, KtLightParameter, KtLightElementBase(containingDeclaration) {
|
||||||
|
protected val ktModule: KtModule get() = method.ktModule
|
||||||
|
|
||||||
override val givenAnnotations: List<KtLightAbstractAnnotation>
|
override val givenAnnotations: List<KtLightAbstractAnnotation>
|
||||||
get() = invalidAccess()
|
get() = invalidAccess()
|
||||||
@@ -37,7 +39,7 @@ internal abstract class SymbolLightParameterBase(containingDeclaration: SymbolLi
|
|||||||
|
|
||||||
override fun setName(p0: String): PsiElement = TODO() //cannotModify()
|
override fun setName(p0: String): PsiElement = TODO() //cannotModify()
|
||||||
|
|
||||||
override val method: KtLightMethod = containingDeclaration
|
override val method: SymbolLightMethodBase = containingDeclaration
|
||||||
|
|
||||||
override fun getDeclarationScope(): KtLightMethod = method
|
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.pointers.KtSymbolPointer
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.receiverType
|
import org.jetbrains.kotlin.analysis.api.symbols.receiverType
|
||||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
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.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.codegen.AsmUtil
|
import org.jetbrains.kotlin.codegen.AsmUtil
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolLightAnnotationForAnnotationCall
|
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
|
import org.jetbrains.kotlin.psi.KtParameter
|
||||||
|
|
||||||
internal class SymbolLightParameterForReceiver private constructor(
|
internal class SymbolLightParameterForReceiver private constructor(
|
||||||
private val ktModule: KtModule,
|
|
||||||
private val callableSymbolWithReceiverPointer: KtSymbolPointer<KtCallableSymbol>,
|
private val callableSymbolWithReceiverPointer: KtSymbolPointer<KtCallableSymbol>,
|
||||||
methodName: String,
|
methodName: String,
|
||||||
method: SymbolLightMethodBase
|
method: SymbolLightMethodBase
|
||||||
@@ -45,11 +43,10 @@ internal class SymbolLightParameterForReceiver private constructor(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun tryGet(
|
fun tryGet(
|
||||||
ktModule: KtModule,
|
|
||||||
callableSymbolPointer: KtSymbolPointer<KtCallableSymbol>,
|
callableSymbolPointer: KtSymbolPointer<KtCallableSymbol>,
|
||||||
method: SymbolLightMethodBase
|
method: SymbolLightMethodBase
|
||||||
): SymbolLightParameterForReceiver? {
|
): SymbolLightParameterForReceiver? {
|
||||||
val methodName = analyzeForLightClasses(ktModule) {
|
val methodName = analyzeForLightClasses(method.ktModule) {
|
||||||
val callableSymbol = callableSymbolPointer.restoreSymbolOrThrowIfDisposed()
|
val callableSymbol = callableSymbolPointer.restoreSymbolOrThrowIfDisposed()
|
||||||
if (callableSymbol !is KtNamedSymbol) return@analyzeForLightClasses null
|
if (callableSymbol !is KtNamedSymbol) return@analyzeForLightClasses null
|
||||||
if (!callableSymbol.isExtension || callableSymbol.receiverType == null) return@analyzeForLightClasses null
|
if (!callableSymbol.isExtension || callableSymbol.receiverType == null) return@analyzeForLightClasses null
|
||||||
@@ -57,7 +54,6 @@ internal class SymbolLightParameterForReceiver private constructor(
|
|||||||
} ?: return null
|
} ?: return null
|
||||||
|
|
||||||
return SymbolLightParameterForReceiver(
|
return SymbolLightParameterForReceiver(
|
||||||
ktModule = ktModule,
|
|
||||||
callableSymbolWithReceiverPointer = callableSymbolPointer,
|
callableSymbolWithReceiverPointer = callableSymbolPointer,
|
||||||
methodName = methodName,
|
methodName = methodName,
|
||||||
method = method,
|
method = method,
|
||||||
|
|||||||
+1
-3
@@ -10,7 +10,6 @@ import com.intellij.psi.PsiParameterList
|
|||||||
import com.intellij.psi.impl.light.LightParameterListBuilder
|
import com.intellij.psi.impl.light.LightParameterListBuilder
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
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.KtLightElement
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.allowLightClassesOnEdt
|
import org.jetbrains.kotlin.light.classes.symbol.allowLightClassesOnEdt
|
||||||
@@ -19,7 +18,6 @@ import org.jetbrains.kotlin.psi.KtFunction
|
|||||||
import org.jetbrains.kotlin.psi.KtParameterList
|
import org.jetbrains.kotlin.psi.KtParameterList
|
||||||
|
|
||||||
internal class SymbolLightParameterList(
|
internal class SymbolLightParameterList(
|
||||||
private val ktModule: KtModule,
|
|
||||||
private val parent: SymbolLightMethodBase,
|
private val parent: SymbolLightMethodBase,
|
||||||
private val callableWithReceiverSymbolPointer: KtSymbolPointer<KtCallableSymbol>? = null,
|
private val callableWithReceiverSymbolPointer: KtSymbolPointer<KtCallableSymbol>? = null,
|
||||||
parameterPopulator: (LightParameterListBuilder) -> Unit = {},
|
parameterPopulator: (LightParameterListBuilder) -> Unit = {},
|
||||||
@@ -36,7 +34,7 @@ internal class SymbolLightParameterList(
|
|||||||
val builder = LightParameterListBuilder(manager, language)
|
val builder = LightParameterListBuilder(manager, language)
|
||||||
|
|
||||||
callableWithReceiverSymbolPointer?.let {
|
callableWithReceiverSymbolPointer?.let {
|
||||||
SymbolLightParameterForReceiver.tryGet(ktModule, it, parent)?.let { receiver ->
|
SymbolLightParameterForReceiver.tryGet(it, parent)?.let { receiver ->
|
||||||
builder.addParameter(receiver)
|
builder.addParameter(receiver)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-2
@@ -30,8 +30,6 @@ internal class SymbolLightSuspendContinuationParameter(
|
|||||||
private val functionSymbolPointer: KtSymbolPointer<KtFunctionSymbol>,
|
private val functionSymbolPointer: KtSymbolPointer<KtFunctionSymbol>,
|
||||||
private val containingMethod: SymbolLightMethodBase,
|
private val containingMethod: SymbolLightMethodBase,
|
||||||
) : SymbolLightParameterBase(containingMethod) {
|
) : SymbolLightParameterBase(containingMethod) {
|
||||||
private val ktModule get() = containingMethod.ktModule
|
|
||||||
|
|
||||||
private inline fun <T> withFunctionSymbol(crossinline action: context(KtAnalysisSession) (KtFunctionSymbol) -> T): T {
|
private inline fun <T> withFunctionSymbol(crossinline action: context(KtAnalysisSession) (KtFunctionSymbol) -> T): T {
|
||||||
return analyzeForLightClasses(ktModule) {
|
return analyzeForLightClasses(ktModule) {
|
||||||
action(this, functionSymbolPointer.restoreSymbolOrThrowIfDisposed())
|
action(this, functionSymbolPointer.restoreSymbolOrThrowIfDisposed())
|
||||||
|
|||||||
Reference in New Issue
Block a user