[FIR] Rename FirAnnotationCall to FirAnnotation

This commit is contained in:
Dmitriy Novozhilov
2021-09-03 14:54:01 +03:00
committed by teamcityserver
parent a7353d5a02
commit 4b662a42a1
365 changed files with 890 additions and 886 deletions
@@ -9,7 +9,7 @@ import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.kotlin.analysis.providers.getModuleInfo
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.realPsi
import org.jetbrains.kotlin.fir.resolve.FirTowerDataContext
import org.jetbrains.kotlin.fir.resolve.ScopeSession
@@ -189,7 +189,7 @@ object LowLevelFirApiFacadeForResolveOnAir {
replacement: RawFirReplacement,
firFile: FirFile,
collector: FirTowerDataContextCollector? = null,
): FirAnnotationCall {
): FirAnnotation {
val annotationCall = buildFileFirAnnotation(
session = firFile.moduleData.session,
baseScopeProvider = firFile.moduleData.session.firIdeProvider.kotlinScopeProvider,
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticPropertyAccessor
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirAnnotationResolveStatus
import org.jetbrains.kotlin.fir.realPsi
import org.jetbrains.kotlin.fir.resolve.ScopeSession
@@ -38,7 +38,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui
*/
fun resolveFileAnnotations(
firFile: FirFile,
annotations: List<FirAnnotationCall>,
annotations: List<FirAnnotation>,
moduleFileCache: ModuleFileCache,
scopeSession: ScopeSession,
checkPCE: Boolean,
@@ -61,7 +61,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui
*/
private fun resolveFileAnnotationsWithoutLock(
firFile: FirFile,
annotations: List<FirAnnotationCall>,
annotations: List<FirAnnotation>,
scopeSession: ScopeSession,
collector: FirTowerDataContextCollector? = null,
) {
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.builder.PsiHandlingMode
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.scopes.FirScopeProvider
import org.jetbrains.kotlin.psi.KtAnnotationEntry
import org.jetbrains.kotlin.psi.KtElement
@@ -19,7 +19,7 @@ internal fun buildFileFirAnnotation(
baseScopeProvider: FirScopeProvider,
fileAnnotation: KtAnnotationEntry,
replacement: RawFirReplacement? = null
): FirAnnotationCall {
): FirAnnotation {
val replacementApplier = replacement?.Applier()
@@ -30,7 +30,7 @@ internal fun buildFileFirAnnotation(
}
}
builder.context.packageFqName = fileAnnotation.containingKtFile.packageFqName
val result = builder.VisitorWithReplacement().convertElement(fileAnnotation) as FirAnnotationCall
val result = builder.VisitorWithReplacement().convertElement(fileAnnotation) as FirAnnotation
replacementApplier?.ensureApplied()
return result
}
}
@@ -4,7 +4,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirAnnotationResolveStatus
import org.jetbrains.kotlin.fir.resolve.ResolutionMode
import org.jetbrains.kotlin.fir.resolve.ScopeSession
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.element.builder.FirIdeDesigna
internal class FirFileAnnotationsResolveTransformer(
private val firFile: FirFile,
private val annotations: List<FirAnnotationCall>,
private val annotations: List<FirAnnotation>,
session: FirSession,
scopeSession: ScopeSession,
implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession = ImplicitBodyResolveComputationSession(),
@@ -107,7 +107,7 @@ internal class KtFirCallResolver(
override fun resolveCall(call: KtCallElement): KtCall? = withValidityAssertion {
return when (val fir = call.getOrBuildFir(firResolveState)) {
is FirFunctionCall -> resolveCall(fir)
is FirAnnotationCall -> fir.asAnnotationCall()
is FirAnnotation -> fir.asAnnotationCall()
is FirDelegatedConstructorCall -> fir.asDelegatedConstructorCall()
is FirConstructor -> fir.asDelegatedConstructorCall()
is FirSafeCallExpression -> fir.regularQualifiedAccess.safeAs<FirFunctionCall>()?.let { resolveCall(it) }
@@ -167,7 +167,7 @@ internal class KtFirCallResolver(
return KtFunctionCall(createArgumentMapping(), target)
}
private fun FirAnnotationCall.asAnnotationCall(): KtAnnotationCall? {
private fun FirAnnotation.asAnnotationCall(): KtAnnotationCall? {
val target = calleeReference.createCallTarget() ?: return null
return KtAnnotationCall(createArgumentMapping(), target)
}
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.containingClassForLocal
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.utils.isInner
import org.jetbrains.kotlin.fir.declarations.utils.isLocal
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.renderWithType
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedError
import org.jetbrains.kotlin.fir.resolve.inference.*
@@ -42,7 +42,7 @@ internal class ConeTypeIdeRenderer(
private var filterExtensionFunctionType: Boolean = false
private fun StringBuilder.renderAnnotationList(annotations: List<FirAnnotationCall>?) {
private fun StringBuilder.renderAnnotationList(annotations: List<FirAnnotation>?) {
if (annotations != null) {
val filteredExtensionIfNeeded = annotations.applyIf(filterExtensionFunctionType) {
annotations.filterNot { it.toAnnotationClassId() == StandardClassIds.extensionFunctionType }
@@ -51,7 +51,7 @@ internal class ConeTypeIdeRenderer(
}
}
fun renderType(type: ConeTypeProjection, annotations: List<FirAnnotationCall>? = null): String = buildString {
fun renderType(type: ConeTypeProjection, annotations: List<FirAnnotation>? = null): String = buildString {
when (type) {
is ConeKotlinErrorType -> {
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.renderer
import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.toAnnotationClassId
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirConstExpression
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.utils.mapAnnotationParameters
internal fun StringBuilder.renderAnnotations(
coneTypeIdeRenderer: ConeTypeIdeRenderer,
annotations: List<FirAnnotationCall>,
annotations: List<FirAnnotation>,
session: FirSession
) {
for (annotation in annotations) {
@@ -27,11 +27,11 @@ internal fun StringBuilder.renderAnnotations(
}
}
private fun FirAnnotationCall.isParameterName(): Boolean {
private fun FirAnnotation.isParameterName(): Boolean {
return toAnnotationClassId()?.asSingleFqName() == StandardNames.FqNames.parameterName
}
private fun renderAnnotation(annotation: FirAnnotationCall, coneTypeIdeRenderer: ConeTypeIdeRenderer, session: FirSession): String {
private fun renderAnnotation(annotation: FirAnnotation, coneTypeIdeRenderer: ConeTypeIdeRenderer, session: FirSession): String {
return buildString {
append('@')
val resolvedTypeRef = annotation.typeRef as? FirResolvedTypeRef
@@ -45,7 +45,7 @@ private fun renderAnnotation(annotation: FirAnnotationCall, coneTypeIdeRenderer:
}
}
private fun renderAndSortAnnotationArguments(descriptor: FirAnnotationCall, session: FirSession): List<String> {
private fun renderAndSortAnnotationArguments(descriptor: FirAnnotation, session: FirSession): List<String> {
val argumentList = mapAnnotationParameters(descriptor, session).entries.map { (name, value) ->
"$name = ${renderConstant(value)}"
}
@@ -57,4 +57,4 @@ private fun renderConstant(value: FirExpression): String {
is FirConstExpression<*> -> value.toString()
else -> "NOT_CONST_EXPRESSION"
}
}
}
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.utils.*
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.resolve.defaultType
import org.jetbrains.kotlin.fir.types.*
@@ -42,7 +42,7 @@ internal class FirIdeRenderer private constructor(
}
}
private fun renderType(type: ConeTypeProjection, annotations: List<FirAnnotationCall>? = null): String =
private fun renderType(type: ConeTypeProjection, annotations: List<FirAnnotation>? = null): String =
typeIdeRenderer.renderType(type, annotations)
private fun renderType(firRef: FirTypeRef, approximate: Boolean = false): String {
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.idea.fir.findPsi
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.ResolveType
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.*
@@ -19,10 +19,10 @@ import org.jetbrains.kotlin.psi.KtCallElement
internal class KtFirAnnotationCall(
private val containingDeclaration: FirRefWithValidityCheck<FirDeclaration>,
annotationCall: FirAnnotationCall
annotation: FirAnnotation
) : KtAnnotationCall() {
private val annotationCallRef by weakRef(annotationCall)
private val annotationCallRef by weakRef(annotation)
override val token: ValidityToken get() = containingDeclaration.token
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.coneClassLikeType
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
import org.jetbrains.kotlin.fir.types.classId
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.utils.FirRefWithValidityCheck
import org.jetbrains.kotlin.name.ClassId
internal fun FirAnnotationCall.getClassId(session: FirSession): ClassId? =
internal fun FirAnnotation.getClassId(session: FirSession): ClassId? =
coneClassLikeType?.fullyExpandedType(session)?.classId
internal fun FirRefWithValidityCheck<FirAnnotatedDeclaration>.toAnnotationsList() = withFir { fir ->
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.utils.primaryConstructor
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirConstExpression
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirNamedArgumentExpression
@@ -33,7 +33,6 @@ import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtConstantValue
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSimpleConstantValue
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtUnsupportedConstantValue
import org.jetbrains.kotlin.idea.frontend.api.types.KtTypeNullability
import org.jetbrains.kotlin.idea.references.FirReferenceResolveHelper
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.*
@@ -68,9 +67,9 @@ internal fun FirNamedReference.getReferencedElementType(resolveState: FirModuleR
}
}
internal fun mapAnnotationParameters(annotationCall: FirAnnotationCall, session: FirSession): Map<String, FirExpression> {
internal fun mapAnnotationParameters(annotation: FirAnnotation, session: FirSession): Map<String, FirExpression> {
val annotationCone = annotationCall.annotationTypeRef.coneType as? ConeClassLikeType ?: return emptyMap()
val annotationCone = annotation.annotationTypeRef.coneType as? ConeClassLikeType ?: return emptyMap()
val annotationPrimaryCtor = (annotationCone.lookupTag.toSymbol(session)?.fir as? FirRegularClass)?.primaryConstructor
val annotationCtorParameterNames = annotationPrimaryCtor?.valueParameters?.map { it.name }
@@ -79,11 +78,11 @@ internal fun mapAnnotationParameters(annotationCall: FirAnnotationCall, session:
val namesSequence = annotationCtorParameterNames?.asSequence()?.iterator()
for (argument in annotationCall.argumentList.arguments.filterIsInstance<FirNamedArgumentExpression>()) {
for (argument in annotation.argumentList.arguments.filterIsInstance<FirNamedArgumentExpression>()) {
resultSet[argument.name.asString()] = argument.expression
}
for (argument in annotationCall.argumentList.arguments) {
for (argument in annotation.argumentList.arguments) {
if (argument is FirNamedArgumentExpression) continue
while (namesSequence != null && namesSequence.hasNext()) {
@@ -18,9 +18,6 @@ import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.references.*
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticPropertySymbol
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeAmbiguityError
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeInapplicableCandidateError
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeOperatorAmbiguityError
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnmatchedTypeArgumentsError
import org.jetbrains.kotlin.fir.resolve.toSymbol
import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer
@@ -31,7 +28,6 @@ import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.idea.fir.getCandidateSymbols
import org.jetbrains.kotlin.idea.fir.isImplicitFunctionCall
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
import org.jetbrains.kotlin.idea.fir.low.level.api.api.getOrBuildFir
import org.jetbrains.kotlin.idea.fir.low.level.api.api.getOrBuildFirSafe
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
@@ -179,7 +175,7 @@ internal object FirReferenceResolveHelper {
is FirResolvedTypeRef -> getSymbolsForResolvedTypeRef(fir, expression, session, symbolBuilder)
is FirResolvedQualifier ->
getSymbolsForResolvedQualifier(fir, expression, session, symbolBuilder)
is FirAnnotationCall -> getSymbolsForAnnotationCall(fir, session, symbolBuilder)
is FirAnnotation -> getSymbolsForAnnotationCall(fir, session, symbolBuilder)
is FirResolvedImport -> getSymbolsByResolvedImport(expression, symbolBuilder, fir, session)
is FirPackageDirective -> getSymbolsForPackageDirective(expression, symbolBuilder)
is FirFile -> getSymbolsByFirFile(symbolBuilder, fir)
@@ -498,7 +494,7 @@ internal object FirReferenceResolveHelper {
}
private fun getSymbolsForAnnotationCall(
fir: FirAnnotationCall,
fir: FirAnnotation,
session: FirSession,
symbolBuilder: KtSymbolByFirBuilder
): Collection<KtSymbol> {