[SLC] replace analyze with analyzeForLightClasses

^KT-54051
This commit is contained in:
Dmitrii Gridin
2022-11-17 10:59:35 +01:00
committed by Space Team
parent a11435b896
commit 98cf8a4333
3 changed files with 12 additions and 12 deletions
@@ -10,7 +10,6 @@ import com.intellij.psi.PsiIdentifier
import com.intellij.psi.PsiModifierList import com.intellij.psi.PsiModifierList
import com.intellij.psi.PsiType import com.intellij.psi.PsiType
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession 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.annotations.annotations
import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtNamedSymbol 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.codegen.AsmUtil
import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolLightAnnotationForAnnotationCall 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.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.compareSymbolPointers
import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList
@@ -37,7 +37,7 @@ internal class SymbolLightParameterForReceiver private constructor(
method: SymbolLightMethodBase method: SymbolLightMethodBase
) : SymbolLightParameterBase(method) { ) : SymbolLightParameterBase(method) {
private inline fun <T> withReceiverType(crossinline action: context(KtAnalysisSession) (KtType) -> T): T { private inline fun <T> withReceiverType(crossinline action: context(KtAnalysisSession) (KtType) -> T): T {
return analyze(ktModule) { return analyzeForLightClasses(ktModule) {
val callableSymbol = callableSymbolWithReceiverPointer.restoreSymbolOrThrowIfDisposed() val callableSymbol = callableSymbolWithReceiverPointer.restoreSymbolOrThrowIfDisposed()
action(this, requireNotNull(callableSymbol.receiverType)) action(this, requireNotNull(callableSymbol.receiverType))
} }
@@ -49,10 +49,10 @@ internal class SymbolLightParameterForReceiver private constructor(
callableSymbolPointer: KtSymbolPointer<KtCallableSymbol>, callableSymbolPointer: KtSymbolPointer<KtCallableSymbol>,
method: SymbolLightMethodBase method: SymbolLightMethodBase
): SymbolLightParameterForReceiver? { ): SymbolLightParameterForReceiver? {
val methodName = analyze(ktModule) { val methodName = analyzeForLightClasses(ktModule) {
val callableSymbol = callableSymbolPointer.restoreSymbolOrThrowIfDisposed() val callableSymbol = callableSymbolPointer.restoreSymbolOrThrowIfDisposed()
if (callableSymbol !is KtNamedSymbol) return@analyze null if (callableSymbol !is KtNamedSymbol) return@analyzeForLightClasses null
if (!callableSymbol.isExtension || callableSymbol.receiverType == null) return@analyze null if (!callableSymbol.isExtension || callableSymbol.receiverType == null) return@analyzeForLightClasses null
callableSymbol.name.asString() callableSymbol.name.asString()
} ?: return null } ?: return null
@@ -110,7 +110,7 @@ internal class SymbolLightParameterForReceiver private constructor(
override fun hashCode(): Int = _name.hashCode() 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 callableSymbolWithReceiverPointer.restoreSymbol()?.receiverType != null
} }
} }
@@ -10,7 +10,6 @@ import com.intellij.psi.PsiModifierList
import com.intellij.psi.PsiType import com.intellij.psi.PsiType
import org.jetbrains.annotations.NotNull import org.jetbrains.annotations.NotNull
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession 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.components.buildClassType
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol
import org.jetbrains.kotlin.analysis.api.symbols.markers.isPrivateOrPrivateToThis 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.asJava.classes.lazyPub
import org.jetbrains.kotlin.codegen.coroutines.SUSPEND_FUNCTION_COMPLETION_PARAMETER_NAME 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.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.isValid
import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList
@@ -33,7 +33,7 @@ internal class SymbolLightSuspendContinuationParameter(
private val ktModule get() = containingMethod.ktModule 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 analyze(ktModule) { return analyzeForLightClasses(ktModule) {
action(this, functionSymbolPointer.restoreSymbolOrThrowIfDisposed()) action(this, functionSymbolPointer.restoreSymbolOrThrowIfDisposed())
} }
} }
@@ -9,7 +9,6 @@ import com.intellij.psi.*
import com.intellij.psi.util.TypeConversionUtil import com.intellij.psi.util.TypeConversionUtil
import com.intellij.util.IncorrectOperationException import com.intellij.util.IncorrectOperationException
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession 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.annotations.*
import org.jetbrains.kotlin.analysis.api.base.KtConstantValue import org.jetbrains.kotlin.analysis.api.base.KtConstantValue
import org.jetbrains.kotlin.analysis.api.components.DefaultTypeClassIds 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.SymbolPsiArrayInitializerMemberValue
import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolPsiExpression 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.annotations.SymbolPsiLiteral
import org.jetbrains.kotlin.light.classes.symbol.classes.analyzeForLightClasses
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.SpecialNames import org.jetbrains.kotlin.name.SpecialNames
import org.jetbrains.kotlin.psi.KtTypeParameterListOwner import org.jetbrains.kotlin.psi.KtTypeParameterListOwner
@@ -296,16 +296,16 @@ internal fun hasTypeParameters(
ktModule: KtModule, ktModule: KtModule,
declaration: KtTypeParameterListOwner?, declaration: KtTypeParameterListOwner?,
declarationPointer: KtSymbolPointer<KtSymbolWithTypeParameters>, declarationPointer: KtSymbolPointer<KtSymbolWithTypeParameters>,
): Boolean = declaration?.typeParameters?.isNotEmpty() ?: analyze(ktModule) { ): Boolean = declaration?.typeParameters?.isNotEmpty() ?: analyzeForLightClasses(ktModule) {
declarationPointer.restoreSymbolOrThrowIfDisposed().typeParameters.isNotEmpty() declarationPointer.restoreSymbolOrThrowIfDisposed().typeParameters.isNotEmpty()
} }
internal fun KtSymbolPointer<*>.isValid(ktModule: KtModule): Boolean = analyze(ktModule) { internal fun KtSymbolPointer<*>.isValid(ktModule: KtModule): Boolean = analyzeForLightClasses(ktModule) {
restoreSymbol() != null restoreSymbol() != null
} }
internal fun <T : KtSymbol> compareSymbolPointers(ktModule: KtModule, left: KtSymbolPointer<T>, right: KtSymbolPointer<T>): Boolean { internal fun <T : KtSymbol> compareSymbolPointers(ktModule: KtModule, left: KtSymbolPointer<T>, right: KtSymbolPointer<T>): Boolean {
return left === right || analyze(ktModule) { return left === right || analyzeForLightClasses(ktModule) {
left.restoreSymbol() == right.restoreSymbol() left.restoreSymbol() == right.restoreSymbol()
} }
} }