diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt index 9dd6db06afa..45528e44015 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt @@ -109,7 +109,7 @@ internal class KtSymbolByFirBuilder private constructor( fun buildEnumEntrySymbol(fir: FirEnumEntry) = symbolsCache.cache(fir) { KtFirEnumEntrySymbol(fir, resolveState, token, this) } - fun buildFileSymbol(fir: FirFile) = filesCache.cache(fir) { KtFirFileSymbol(fir, resolveState, token, this) } + fun buildFileSymbol(fir: FirFile) = filesCache.cache(fir) { KtFirFileSymbol(fir, resolveState, token) } private val packageProvider = project.createPackageProvider(GlobalSearchScope.allScope(project))//todo scope diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompileTimeConstantProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompileTimeConstantProvider.kt index 4229f5fc742..4e51b9fd195 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompileTimeConstantProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompileTimeConstantProvider.kt @@ -26,7 +26,7 @@ internal class KtFirCompileTimeConstantProvider( when (val fir = expression.getOrBuildFir(firResolveState)) { is FirExpression -> { FirCompileTimeConstantEvaluator().evaluate(fir)?.let { KtFirConstantValueConverter.toConstantValue(it) } - ?: KtFirConstantValueConverter.toConstantValue(fir, firResolveState.rootModuleSession, firSymbolBuilder) + ?: KtFirConstantValueConverter.toConstantValue(fir, firResolveState.rootModuleSession) } else -> throwUnexpectedFirElementError(fir, expression) } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/KtFirConstantValueConverter.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/KtFirConstantValueConverter.kt index 8803203e723..2a18a300127 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/KtFirConstantValueConverter.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/evaluate/KtFirConstantValueConverter.kt @@ -5,9 +5,6 @@ package org.jetbrains.kotlin.analysis.api.fir.evaluate -import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder -import org.jetbrains.kotlin.analysis.api.fir.buildSymbol -import org.jetbrains.kotlin.analysis.api.symbols.KtEnumEntrySymbol import org.jetbrains.kotlin.analysis.api.symbols.markers.* import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.FirSession @@ -28,12 +25,11 @@ internal object KtFirConstantValueConverter { fun toNamedConstantValue( argumentMapping: Map, session: FirSession, - firSymbolBuilder: KtSymbolByFirBuilder ): List = argumentMapping.map { (name, expression) -> KtNamedConstantValue( name, - expression.convertConstantExpression(session, firSymbolBuilder) ?: KtUnsupportedConstantValue + expression.convertConstantExpression(session) ?: KtUnsupportedConstantValue ) } @@ -47,9 +43,8 @@ internal object KtFirConstantValueConverter { private fun Collection.convertConstantExpression( session: FirSession, - firSymbolBuilder: KtSymbolByFirBuilder ): Collection = - mapNotNull { it.convertConstantExpression(session, firSymbolBuilder) } + mapNotNull { it.convertConstantExpression(session) } private fun Collection.toArrayConstantValueIfNecessary(kotlinOrigin: KtElement?): KtConstantValue { return if (size == 1) @@ -61,25 +56,23 @@ internal object KtFirConstantValueConverter { fun toConstantValue( firExpression: FirExpression, session: FirSession, - firSymbolBuilder: KtSymbolByFirBuilder ): KtConstantValue? = - firExpression.convertConstantExpression(session, firSymbolBuilder) + firExpression.convertConstantExpression(session) private fun FirExpression.convertConstantExpression( session: FirSession, - firSymbolBuilder: KtSymbolByFirBuilder ): KtConstantValue? { return when (this) { is FirConstExpression<*> -> convertConstantExpression() is FirNamedArgumentExpression -> { - expression.convertConstantExpression(session, firSymbolBuilder) + expression.convertConstantExpression(session) } is FirVarargArgumentsExpression -> { - arguments.convertConstantExpression(session, firSymbolBuilder) + arguments.convertConstantExpression(session) .toArrayConstantValueIfNecessary(realPsi as? KtElement) } is FirArrayOfCall -> { - argumentList.arguments.convertConstantExpression(session, firSymbolBuilder) + argumentList.arguments.convertConstantExpression(session) .toArrayConstantValueIfNecessary(realPsi as? KtElement) } is FirFunctionCall -> { @@ -93,15 +86,15 @@ internal object KtFirConstantValueConverter { resultMap[param.name.asString()] = arg } KtAnnotationConstantValue( - resolvedSymbol.callableId.className?.asString(), - toNamedConstantValue(resultMap, session, firSymbolBuilder), + resolvedSymbol.callableId.classId, + toNamedConstantValue(resultMap, session), this.realPsi as? KtCallElement ) } else null } is FirNamedFunctionSymbol -> { if (resolvedSymbol.callableId.asSingleFqName() in ArrayFqNames.ARRAY_CALL_FQ_NAMES) - argumentList.arguments.convertConstantExpression(session, firSymbolBuilder) + argumentList.arguments.convertConstantExpression(session) .toArrayConstantValueIfNecessary(realPsi as? KtElement) else null } @@ -112,10 +105,7 @@ internal object KtFirConstantValueConverter { val reference = calleeReference as? FirResolvedNamedReference ?: return null when (val resolvedSymbol = reference.resolvedSymbol) { is FirEnumEntrySymbol -> { - KtEnumEntryConstantValue( - resolvedSymbol.fir.buildSymbol(firSymbolBuilder) as KtEnumEntrySymbol, - realPsi as? KtElement - ) + KtEnumEntryConstantValue(resolvedSymbol.callableId, realPsi as? KtElement) } else -> null } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt index 5d3df67223f..505e60488b0 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirAnonymousObjectSymbol.kt @@ -35,7 +35,7 @@ internal class KtFirAnonymousObjectSymbol( override val firRef = firRef(fir, resolveState) override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.moduleData.session) } - override val annotations: List by cached { firRef.toAnnotationsList(_builder) } + override val annotations: List by cached { firRef.toAnnotationsList() } override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt index 789816aa79b..9468e9385d7 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirConstructorSymbol.kt @@ -59,7 +59,7 @@ internal class KtFirConstructorSymbol( override val visibility: Visibility get() = getVisibility() - override val annotations: List by cached { firRef.toAnnotationsList(_builder) } + override val annotations: List by cached { firRef.toAnnotationsList() } override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt index 85208623395..99771b62874 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFileSymbol.kt @@ -27,7 +27,6 @@ internal class KtFirFileSymbol( fir: FirFile, resolveState: FirModuleResolveState, override val token: ValidityToken, - _builder: KtSymbolByFirBuilder, ) : KtFileSymbol(), KtSymbolWithDeclarations, KtFirSymbol { override val firRef = firRef(fir, resolveState) override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.moduleData.session) } @@ -37,7 +36,7 @@ internal class KtFirFileSymbol( TODO("Creating pointers for files from library is not supported yet") } - override val annotations: List by cached { firRef.toAnnotationsList(_builder) } + override val annotations: List by cached { firRef.toAnnotationsList() } override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt index 5c14cacc253..c43a8f003eb 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirFunctionSymbol.kt @@ -64,7 +64,7 @@ internal class KtFirFunctionSymbol( override val hasStableParameterNames: Boolean = firRef.withFir { it.getHasStableParameterNames(it.moduleData.session) } - override val annotations: List by cached { firRef.toAnnotationsList(_builder) } + override val annotations: List by cached { firRef.toAnnotationsList() } override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirKotlinPropertySymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirKotlinPropertySymbol.kt index fe20ee3ec4e..2734e46be44 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirKotlinPropertySymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirKotlinPropertySymbol.kt @@ -72,7 +72,7 @@ internal class KtFirKotlinPropertySymbol( override val isExtension: Boolean get() = firRef.withFir { it.receiverTypeRef != null } override val initializer: KtConstantValue? by firRef.withFirAndCache(FirResolvePhase.BODY_RESOLVE) { fir -> - fir.initializer?.let { KtFirConstantValueConverter.toConstantValue(it, resolveState.rootModuleSession, _builder) } + fir.initializer?.let { KtFirConstantValueConverter.toConstantValue(it, resolveState.rootModuleSession) } } override val symbolKind: KtSymbolKind get() = firRef.withFir { fir -> @@ -85,7 +85,7 @@ internal class KtFirKotlinPropertySymbol( override val visibility: Visibility get() = getVisibility() - override val annotations: List by cached { firRef.toAnnotationsList(_builder) } + override val annotations: List by cached { firRef.toAnnotationsList() } override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt index 6aa6764f469..4ddf63d0ca3 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirNamedClassOrObjectSymbol.kt @@ -69,7 +69,7 @@ internal class KtFirNamedClassOrObjectSymbol( else -> possiblyRawVisibility } - override val annotations: List by cached { firRef.toAnnotationsList(_builder) } + override val annotations: List by cached { firRef.toAnnotationsList() } override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt index 2fcbd9d5da2..cabf53fa3b2 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertyGetterSymbol.kt @@ -59,7 +59,7 @@ internal class KtFirPropertyGetterSymbol( } override val modality: Modality get() = getModality() override val visibility: Visibility get() = getVisibility() - override val annotations: List by cached { firRef.toAnnotationsList(_builder) } + override val annotations: List by cached { firRef.toAnnotationsList() } override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt index aad4bf4f247..a6d6ed6b5a6 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirPropertySetterSymbol.kt @@ -57,7 +57,7 @@ internal class KtFirPropertySetterSymbol( override val modality: Modality get() = getModality() override val visibility: Visibility get() = getVisibility() - override val annotations: List by cached { firRef.toAnnotationsList(_builder) } + override val annotations: List by cached { firRef.toAnnotationsList() } override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt index 674c39c32b2..6e943ec579a 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt @@ -60,13 +60,13 @@ internal class KtFirSyntheticJavaPropertySymbol( } override val isExtension: Boolean get() = firRef.withFir { it.receiverTypeRef != null } override val initializer: KtConstantValue? by firRef.withFirAndCache(FirResolvePhase.BODY_RESOLVE) { fir -> - fir.initializer?.let { KtFirConstantValueConverter.toConstantValue(it, resolveState.rootModuleSession, _builder) } + fir.initializer?.let { KtFirConstantValueConverter.toConstantValue(it, resolveState.rootModuleSession) } } override val modality: Modality get() = getModality() override val visibility: Visibility get() = getVisibility() - override val annotations: List by cached { firRef.toAnnotationsList(_builder) } + override val annotations: List by cached { firRef.toAnnotationsList() } override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAndAnnotations.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAndAnnotations.kt index 1e9c54c62f8..e62b0df96ee 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAndAnnotations.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirTypeAndAnnotations.kt @@ -37,7 +37,7 @@ internal class KtFirTypeAndAnnotations( override val annotations: List by containingDeclaration.withFirAndCache { fir -> typeRef(fir).annotations.map { - KtFirAnnotationCall(containingDeclaration, it, _builder) + KtFirAnnotationCall(containingDeclaration, it) } } } @@ -79,7 +79,7 @@ private fun List.mapToTypeAndAnnotations( builder: KtSymbolByFirBuilder, ) = map { typeRef -> val annotations = typeRef.annotations.map { annotation -> - KtFirAnnotationCall(containingDeclaration, annotation, builder) + KtFirAnnotationCall(containingDeclaration, annotation) } KtSimpleFirTypeAndAnnotations(typeRef.coneType, annotations, builder, containingDeclaration.token) } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt index 3db70eca529..2f7db18949c 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirValueParameterSymbol.kt @@ -45,7 +45,7 @@ internal class KtFirValueParameterSymbol( override val annotatedType: KtTypeAndAnnotations by firRef.withFirAndCache(FirResolvePhase.TYPES) { fir -> if (fir.isVararg) { val annotations = fir.returnTypeRef.annotations.map { annotation -> - KtFirAnnotationCall(firRef, annotation, _builder) + KtFirAnnotationCall(firRef, annotation) } // There SHOULD always be an array element type (even if it is an error type, e.g., unresolved). val arrayElementType = fir.returnTypeRef.coneType.arrayElementType() @@ -58,7 +58,7 @@ internal class KtFirValueParameterSymbol( override val hasDefaultValue: Boolean get() = firRef.withFir { it.defaultValue != null } - override val annotations: List by cached { firRef.toAnnotationsList(_builder) } + override val annotations: List by cached { firRef.toAnnotationsList() } override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/KtFirAnnotationCall.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/KtFirAnnotationCall.kt index f6d59c90cb9..54acc547f3a 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/KtFirAnnotationCall.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/KtFirAnnotationCall.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.psi.KtCallElement internal class KtFirAnnotationCall( private val containingDeclaration: FirRefWithValidityCheck, annotation: FirAnnotation, - _builder: KtSymbolByFirBuilder, ) : KtAnnotationCall() { private val annotationCallRef by weakRef(annotation) @@ -45,7 +44,6 @@ internal class KtFirAnnotationCall( KtFirConstantValueConverter.toNamedConstantValue( mapAnnotationParameters(annotationCallRef, fir.moduleData.session), fir.moduleData.session, - _builder ) } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/firAnnotationUtils.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/firAnnotationUtils.kt index f7febdd66ee..d18258f0ff9 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/firAnnotationUtils.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/firAnnotationUtils.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols.annotations -import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder import org.jetbrains.kotlin.analysis.api.fir.utils.FirRefWithValidityCheck import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.ResolveType import org.jetbrains.kotlin.fir.FirSession @@ -24,10 +23,8 @@ import org.jetbrains.kotlin.name.ClassId internal fun FirAnnotation.getClassId(session: FirSession): ClassId? = coneClassLikeType?.fullyExpandedType(session)?.classId -internal fun FirRefWithValidityCheck.toAnnotationsList( - builder: KtSymbolByFirBuilder -) = withFir { fir -> - fir.annotations.map { KtFirAnnotationCall(this, it, builder) } +internal fun FirRefWithValidityCheck.toAnnotationsList() = withFir { fir -> + fir.annotations.map { KtFirAnnotationCall(this, it) } } internal fun FirRefWithValidityCheck.containsAnnotation(classId: ClassId): Boolean = diff --git a/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/components/AbstractCompileTimeConstantEvaluatorTest.kt b/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/components/AbstractCompileTimeConstantEvaluatorTest.kt index 208db6ace7b..25c4138cb51 100644 --- a/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/components/AbstractCompileTimeConstantEvaluatorTest.kt +++ b/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/components/AbstractCompileTimeConstantEvaluatorTest.kt @@ -45,7 +45,7 @@ abstract class AbstractCompileTimeConstantEvaluatorTest : AbstractHLApiSingleFil } is KtAnnotationConstantValue -> buildString { append("KtAnnotationConstantValue(") - append(fqName) + append(classId?.relativeClassName) append(", ") arguments.joinTo(this, separator = ", ", prefix = "(", postfix = ")") { "${it.name} = ${it.expression.stringRepresentation()}" @@ -54,7 +54,7 @@ abstract class AbstractCompileTimeConstantEvaluatorTest : AbstractHLApiSingleFil } is KtEnumEntryConstantValue -> buildString { append("KtEnumEntryConstantValue(") - append(enumEntrySymbol.callableIdIfNonLocal ?: enumEntrySymbol.name) + append("$callableId") append(")") } is KtLiteralConstantValue<*> -> buildString { diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/DebugSymbolRenderer.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/DebugSymbolRenderer.kt index fe7729d8db4..6585d19fdb1 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/DebugSymbolRenderer.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/DebugSymbolRenderer.kt @@ -96,7 +96,7 @@ public object DebugSymbolRenderer { "${value::class.simpleName!!}($symbolTag)" } is KtLiteralConstantValue<*> -> renderValue(value.value) - is KtEnumEntryConstantValue -> "KtEnumEntryConstantValue(${renderValue(value.enumEntrySymbol)})" + is KtEnumEntryConstantValue -> "KtEnumEntryConstantValue(${renderValue(value.callableId)})" is KtNamedConstantValue -> "${renderValue(value.name)} = ${renderValue(value.expression)}" is KtAnnotationCall -> buildString { append(renderValue(value.classId)) diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/markers/KtConstantValue.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/markers/KtConstantValue.kt index f9a2403c177..ba41acee343 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/markers/KtConstantValue.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/markers/KtConstantValue.kt @@ -5,7 +5,8 @@ package org.jetbrains.kotlin.analysis.api.symbols.markers -import org.jetbrains.kotlin.analysis.api.symbols.KtEnumEntrySymbol +import org.jetbrains.kotlin.name.CallableId +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.psi.KtCallElement import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.types.ConstantValueKind @@ -36,13 +37,13 @@ public class KtArrayConstantValue( ) : KtConstantValue() public class KtAnnotationConstantValue( - public val fqName: String?, + public val classId: ClassId?, public val arguments: List, override val kotlinOrigin: KtCallElement?, ) : KtConstantValue() public class KtEnumEntryConstantValue( - public val enumEntrySymbol: KtEnumEntrySymbol, + public val callableId: CallableId?, override val kotlinOrigin: KtElement?, ) : KtConstantValue() diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.txt index cca754fddfc..d58cbb98bc1 100644 --- a/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.txt +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.txt @@ -296,7 +296,7 @@ KtFirKotlinPropertySymbol: kotlin/Deprecated ] annotations: [ - kotlin/Deprecated(level = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/DeprecationLevel.ERROR)), message = don't use j) + kotlin/Deprecated(level = KtEnumEntryConstantValue(kotlin/DeprecationLevel.ERROR), message = don't use j) psi: KtAnnotationEntry ] callableIdIfNonLocal: /j @@ -332,7 +332,7 @@ KtFirKotlinPropertySymbol: kotlin/Deprecated ] annotations: [ - kotlin/Deprecated(level = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/DeprecationLevel.HIDDEN)), message = don't use j2) + kotlin/Deprecated(level = KtEnumEntryConstantValue(kotlin/DeprecationLevel.HIDDEN), message = don't use j2) psi: KtAnnotationEntry ] callableIdIfNonLocal: /j2 diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.txt index 734400a5a12..8b6c892ad5f 100644 --- a/analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.txt +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/typeAnnotations.txt @@ -3,7 +3,7 @@ KtFirNamedClassOrObjectSymbol: kotlin/annotation/Target ] annotations: [ - kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE))) + kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(kotlin/annotation/AnnotationTarget.TYPE)) psi: KtAnnotationEntry ] classIdIfNonLocal: Anno1 @@ -30,7 +30,7 @@ KtFirNamedClassOrObjectSymbol: kotlin/annotation/Target ] annotations: [ - kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE))) + kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(kotlin/annotation/AnnotationTarget.TYPE)) psi: KtAnnotationEntry ] classIdIfNonLocal: Anno2 @@ -57,7 +57,7 @@ KtFirNamedClassOrObjectSymbol: kotlin/annotation/Target ] annotations: [ - kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE))) + kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(kotlin/annotation/AnnotationTarget.TYPE)) psi: KtAnnotationEntry ] classIdIfNonLocal: Anno3 @@ -84,7 +84,7 @@ KtFirNamedClassOrObjectSymbol: kotlin/annotation/Target ] annotations: [ - kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(KtFirEnumEntrySymbol(kotlin/annotation/AnnotationTarget.TYPE))) + kotlin/annotation/Target(allowedTargets = KtEnumEntryConstantValue(kotlin/annotation/AnnotationTarget.TYPE)) psi: KtAnnotationEntry ] classIdIfNonLocal: Anno4 diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt index 7166665ef45..b0ccf2b354b 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt @@ -186,7 +186,7 @@ internal fun KtConstantValue.toAnnotationMemberValue(parent: PsiElement): PsiAnn values.mapNotNull { element -> element.toAnnotationMemberValue(arrayLiteralParent) } } is KtAnnotationConstantValue -> - FirLightSimpleAnnotation(fqName, parent, arguments, kotlinOrigin) + FirLightSimpleAnnotation(classId?.relativeClassName?.asString(), parent, arguments, kotlinOrigin) else -> createPsiLiteral(parent)?.let { when (it) { @@ -200,7 +200,7 @@ internal fun KtConstantValue.toAnnotationMemberValue(parent: PsiElement): PsiAnn private fun KtConstantValue.asStringForPsiLiteral(): String? = when (this) { is KtEnumEntryConstantValue -> - "${enumEntrySymbol.containingEnumClassIdIfNonLocal?.asSingleFqName()?.asString() ?: ""}.${enumEntrySymbol.name}" + "${callableId?.classId?.asSingleFqName()?.asString() ?: ""}.${callableId?.callableName}" is KtLiteralConstantValue<*> -> { when (val value = this.value) { is String -> "\"${escapeString(value)}\""