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 ff195287815..9c41f79d4e6 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 @@ -10,7 +10,6 @@ import com.intellij.psi.PsiIdentifier import com.intellij.psi.PsiModifierList import com.intellij.psi.PsiType import org.jetbrains.kotlin.analysis.api.KtAnalysisSession -import org.jetbrains.kotlin.analysis.api.analyze import org.jetbrains.kotlin.analysis.api.annotations.annotations import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.markers.KtNamedSymbol @@ -22,6 +21,7 @@ import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.codegen.AsmUtil import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolLightAnnotationForAnnotationCall import org.jetbrains.kotlin.light.classes.symbol.annotations.computeNullabilityAnnotation +import org.jetbrains.kotlin.light.classes.symbol.classes.analyzeForLightClasses import org.jetbrains.kotlin.light.classes.symbol.compareSymbolPointers import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList @@ -37,7 +37,7 @@ internal class SymbolLightParameterForReceiver private constructor( method: SymbolLightMethodBase ) : SymbolLightParameterBase(method) { private inline fun withReceiverType(crossinline action: context(KtAnalysisSession) (KtType) -> T): T { - return analyze(ktModule) { + return analyzeForLightClasses(ktModule) { val callableSymbol = callableSymbolWithReceiverPointer.restoreSymbolOrThrowIfDisposed() action(this, requireNotNull(callableSymbol.receiverType)) } @@ -49,10 +49,10 @@ internal class SymbolLightParameterForReceiver private constructor( callableSymbolPointer: KtSymbolPointer, method: SymbolLightMethodBase ): SymbolLightParameterForReceiver? { - val methodName = analyze(ktModule) { + val methodName = analyzeForLightClasses(ktModule) { val callableSymbol = callableSymbolPointer.restoreSymbolOrThrowIfDisposed() - if (callableSymbol !is KtNamedSymbol) return@analyze null - if (!callableSymbol.isExtension || callableSymbol.receiverType == null) return@analyze null + if (callableSymbol !is KtNamedSymbol) return@analyzeForLightClasses null + if (!callableSymbol.isExtension || callableSymbol.receiverType == null) return@analyzeForLightClasses null callableSymbol.name.asString() } ?: return null @@ -110,7 +110,7 @@ internal class SymbolLightParameterForReceiver private constructor( override fun hashCode(): Int = _name.hashCode() - override fun isValid(): Boolean = super.isValid() && analyze(ktModule) { + override fun isValid(): Boolean = super.isValid() && analyzeForLightClasses(ktModule) { callableSymbolWithReceiverPointer.restoreSymbol()?.receiverType != null } } 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 2cdb6c23fbf..6f1e5186b15 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 @@ -10,7 +10,6 @@ import com.intellij.psi.PsiModifierList import com.intellij.psi.PsiType import org.jetbrains.annotations.NotNull import org.jetbrains.kotlin.analysis.api.KtAnalysisSession -import org.jetbrains.kotlin.analysis.api.analyze import org.jetbrains.kotlin.analysis.api.components.buildClassType import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol import org.jetbrains.kotlin.analysis.api.symbols.markers.isPrivateOrPrivateToThis @@ -18,6 +17,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.codegen.coroutines.SUSPEND_FUNCTION_COMPLETION_PARAMETER_NAME import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolLightSimpleAnnotation +import org.jetbrains.kotlin.light.classes.symbol.classes.analyzeForLightClasses import org.jetbrains.kotlin.light.classes.symbol.isValid import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList @@ -33,7 +33,7 @@ internal class SymbolLightSuspendContinuationParameter( private val ktModule get() = containingMethod.ktModule private inline fun withFunctionSymbol(crossinline action: context(KtAnalysisSession) (KtFunctionSymbol) -> T): T { - return analyze(ktModule) { + return analyzeForLightClasses(ktModule) { action(this, functionSymbolPointer.restoreSymbolOrThrowIfDisposed()) } } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt index 52cf112c362..c79f679e4c6 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt @@ -9,7 +9,6 @@ import com.intellij.psi.* import com.intellij.psi.util.TypeConversionUtil import com.intellij.util.IncorrectOperationException import org.jetbrains.kotlin.analysis.api.KtAnalysisSession -import org.jetbrains.kotlin.analysis.api.analyze import org.jetbrains.kotlin.analysis.api.annotations.* import org.jetbrains.kotlin.analysis.api.base.KtConstantValue import org.jetbrains.kotlin.analysis.api.components.DefaultTypeClassIds @@ -30,6 +29,7 @@ import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolLightSimpleAn import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolPsiArrayInitializerMemberValue import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolPsiExpression import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolPsiLiteral +import org.jetbrains.kotlin.light.classes.symbol.classes.analyzeForLightClasses import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.SpecialNames import org.jetbrains.kotlin.psi.KtTypeParameterListOwner @@ -296,16 +296,16 @@ internal fun hasTypeParameters( ktModule: KtModule, declaration: KtTypeParameterListOwner?, declarationPointer: KtSymbolPointer, -): Boolean = declaration?.typeParameters?.isNotEmpty() ?: analyze(ktModule) { +): Boolean = declaration?.typeParameters?.isNotEmpty() ?: analyzeForLightClasses(ktModule) { declarationPointer.restoreSymbolOrThrowIfDisposed().typeParameters.isNotEmpty() } -internal fun KtSymbolPointer<*>.isValid(ktModule: KtModule): Boolean = analyze(ktModule) { +internal fun KtSymbolPointer<*>.isValid(ktModule: KtModule): Boolean = analyzeForLightClasses(ktModule) { restoreSymbol() != null } internal fun compareSymbolPointers(ktModule: KtModule, left: KtSymbolPointer, right: KtSymbolPointer): Boolean { - return left === right || analyze(ktModule) { + return left === right || analyzeForLightClasses(ktModule) { left.restoreSymbol() == right.restoreSymbol() } }