[FIR] Get rid of FirAnnotation.fullyExpandedClassId
It's duplicated by `toAnnotationClassId`.
This commit is contained in:
committed by
Space Team
parent
343b856cfc
commit
4cddbb5fc0
@@ -6,11 +6,11 @@
|
||||
package org.jetbrains.kotlin.analysis.api.fir
|
||||
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationApplication
|
||||
import org.jetbrains.kotlin.fir.declarations.fullyExpandedClassId
|
||||
import org.jetbrains.kotlin.analysis.api.fir.annotations.mapAnnotationParameters
|
||||
import org.jetbrains.kotlin.analysis.api.fir.evaluate.FirAnnotationValueConverter
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.toAnnotationClassId
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.psi
|
||||
@@ -64,7 +64,7 @@ internal fun ConeDiagnostic.getCandidateSymbols(): Collection<FirBasedSymbol<*>>
|
||||
|
||||
internal fun FirAnnotation.toKtAnnotationApplication(useSiteSession: FirSession): KtAnnotationApplication {
|
||||
return KtAnnotationApplication(
|
||||
fullyExpandedClassId(useSiteSession),
|
||||
toAnnotationClassId(useSiteSession),
|
||||
psi as? KtCallElement,
|
||||
useSiteTarget,
|
||||
FirAnnotationValueConverter.toNamedConstantValue(
|
||||
|
||||
+5
-6
@@ -13,7 +13,8 @@ import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.fullyExpandedClassId
|
||||
import org.jetbrains.kotlin.fir.declarations.hasAnnotation
|
||||
import org.jetbrains.kotlin.fir.declarations.toAnnotationClassId
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
|
||||
@@ -37,19 +38,17 @@ internal class KtFirAnnotationListForDeclaration private constructor(
|
||||
): Boolean = withValidityAssertion {
|
||||
firSymbol.resolvedAnnotationsWithClassIds.any {
|
||||
(it.useSiteTarget == useSiteTarget || acceptAnnotationsWithoutUseSite && it.useSiteTarget == null) &&
|
||||
it.fullyExpandedClassId(useSiteSession) == classId
|
||||
it.toAnnotationClassId(useSiteSession) == classId
|
||||
}
|
||||
}
|
||||
|
||||
override fun hasAnnotation(classId: ClassId): Boolean = withValidityAssertion {
|
||||
firSymbol.resolvedAnnotationsWithClassIds.any {
|
||||
it.fullyExpandedClassId(useSiteSession) == classId
|
||||
}
|
||||
firSymbol.resolvedAnnotationsWithClassIds.hasAnnotation(classId, useSiteSession)
|
||||
}
|
||||
|
||||
override fun annotationsByClassId(classId: ClassId): List<KtAnnotationApplication> = withValidityAssertion {
|
||||
firSymbol.resolvedAnnotationsWithArguments.mapNotNull { annotation ->
|
||||
if (annotation.fullyExpandedClassId(useSiteSession) != classId) return@mapNotNull null
|
||||
if (annotation.toAnnotationClassId(useSiteSession) != classId) return@mapNotNull null
|
||||
annotation.toKtAnnotationApplication(useSiteSession)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-6
@@ -14,7 +14,8 @@ import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.fullyExpandedClassId
|
||||
import org.jetbrains.kotlin.fir.declarations.hasAnnotation
|
||||
import org.jetbrains.kotlin.fir.declarations.toAnnotationClassId
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.resolvedAnnotationClassIds
|
||||
import org.jetbrains.kotlin.fir.symbols.resolvedAnnotationsWithArguments
|
||||
@@ -42,19 +43,17 @@ internal class KtFirAnnotationListForReceiverParameter private constructor(
|
||||
): Boolean = withValidityAssertion {
|
||||
receiverParameter.resolvedAnnotationsWithClassIds(firCallableSymbol).any {
|
||||
(it.useSiteTarget == useSiteTarget || acceptAnnotationsWithoutUseSite && it.useSiteTarget == null) &&
|
||||
it.fullyExpandedClassId(useSiteSession) == classId
|
||||
it.toAnnotationClassId(useSiteSession) == classId
|
||||
}
|
||||
}
|
||||
|
||||
override fun hasAnnotation(classId: ClassId): Boolean = withValidityAssertion {
|
||||
receiverParameter.resolvedAnnotationsWithClassIds(firCallableSymbol).any {
|
||||
it.fullyExpandedClassId(useSiteSession) == classId
|
||||
}
|
||||
receiverParameter.resolvedAnnotationsWithClassIds(firCallableSymbol).hasAnnotation(classId, useSiteSession)
|
||||
}
|
||||
|
||||
override fun annotationsByClassId(classId: ClassId): List<KtAnnotationApplication> = withValidityAssertion {
|
||||
receiverParameter.resolvedAnnotationsWithArguments(firCallableSymbol).mapNotNull { annotation ->
|
||||
if (annotation.fullyExpandedClassId(useSiteSession) != classId) return@mapNotNull null
|
||||
if (annotation.toAnnotationClassId(useSiteSession) != classId) return@mapNotNull null
|
||||
annotation.toKtAnnotationApplication(useSiteSession)
|
||||
}
|
||||
}
|
||||
|
||||
+6
-7
@@ -13,7 +13,8 @@ import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.fullyExpandedClassId
|
||||
import org.jetbrains.kotlin.fir.declarations.hasAnnotation
|
||||
import org.jetbrains.kotlin.fir.declarations.toAnnotationClassId
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
import org.jetbrains.kotlin.fir.types.customAnnotations
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
@@ -33,25 +34,23 @@ internal class KtFirAnnotationListForType private constructor(
|
||||
): Boolean = withValidityAssertion {
|
||||
coneType.customAnnotations.any {
|
||||
(it.useSiteTarget == useSiteTarget || acceptAnnotationsWithoutUseSite && it.useSiteTarget == null) &&
|
||||
it.fullyExpandedClassId(useSiteSession) == classId
|
||||
it.toAnnotationClassId(useSiteSession) == classId
|
||||
}
|
||||
}
|
||||
|
||||
override fun hasAnnotation(classId: ClassId): Boolean = withValidityAssertion {
|
||||
coneType.customAnnotations.any {
|
||||
it.fullyExpandedClassId(useSiteSession) == classId
|
||||
}
|
||||
coneType.customAnnotations.hasAnnotation(classId, useSiteSession)
|
||||
}
|
||||
|
||||
override fun annotationsByClassId(classId: ClassId): List<KtAnnotationApplication> = withValidityAssertion {
|
||||
coneType.customAnnotations.mapNotNull { annotation ->
|
||||
if (annotation.fullyExpandedClassId(useSiteSession) != classId) return@mapNotNull null
|
||||
if (annotation.toAnnotationClassId(useSiteSession) != classId) return@mapNotNull null
|
||||
annotation.toKtAnnotationApplication(useSiteSession)
|
||||
}
|
||||
}
|
||||
|
||||
override val annotationClassIds: Collection<ClassId>
|
||||
get() = withValidityAssertion { coneType.customAnnotations.mapNotNull { it.fullyExpandedClassId(useSiteSession) } }
|
||||
get() = withValidityAssertion { coneType.customAnnotations.mapNotNull { it.toAnnotationClassId(useSiteSession) } }
|
||||
|
||||
companion object {
|
||||
fun create(
|
||||
|
||||
Reference in New Issue
Block a user