diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt index ec7a58e5c76..b5fb0c58d17 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt @@ -9,9 +9,7 @@ import org.jetbrains.kotlin.codegen.ClassBuilderMode import org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings import org.jetbrains.kotlin.codegen.state.GenerationState import org.jetbrains.kotlin.config.JvmDefaultMode -import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.backend.FirMetadataSource @@ -20,10 +18,8 @@ import org.jetbrains.kotlin.fir.resolve.firProvider import org.jetbrains.kotlin.fir.resolve.inference.isBuiltinFunctionalType import org.jetbrains.kotlin.fir.serialization.FirElementSerializer import org.jetbrains.kotlin.fir.serialization.FirSerializerExtension -import org.jetbrains.kotlin.fir.serialization.nonSourceAnnotations import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.ir.declarations.IrClass -import org.jetbrains.kotlin.load.java.DescriptorsJvmAbiUtil import org.jetbrains.kotlin.load.kotlin.NON_EXISTENT_CLASS_NAME import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf @@ -33,7 +29,6 @@ import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil import org.jetbrains.kotlin.metadata.serialization.MutableVersionRequirementTable import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.protobuf.GeneratedMessageLite -import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.jvm.annotations.JVM_DEFAULT_FQ_NAME import org.jetbrains.kotlin.serialization.DescriptorSerializer import org.jetbrains.kotlin.types.AbstractTypeApproximator diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirAnnotationUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/declarations/FirAnnotationUtils.kt similarity index 74% rename from compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirAnnotationUtils.kt rename to compiler/fir/resolve/src/org/jetbrains/kotlin/fir/declarations/FirAnnotationUtils.kt index 68266ef99f0..ef665cb993a 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirAnnotationUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/declarations/FirAnnotationUtils.kt @@ -3,11 +3,10 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.fir.serialization +package org.jetbrains.kotlin.fir.declarations import org.jetbrains.kotlin.fir.FirAnnotationContainer import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference @@ -22,10 +21,10 @@ import org.jetbrains.kotlin.name.Name private fun FirAnnotationCall.toAnnotationLookupTag(): ConeClassLikeLookupTag = (annotationTypeRef.coneType as ConeClassLikeType).lookupTag -internal fun FirAnnotationCall.toAnnotationClassId(): ClassId = +fun FirAnnotationCall.toAnnotationClassId(): ClassId = toAnnotationLookupTag().classId -internal fun FirAnnotationCall.toAnnotationClass(session: FirSession): FirRegularClass? = +private fun FirAnnotationCall.toAnnotationClass(session: FirSession): FirRegularClass? = toAnnotationLookupTag().toSymbol(session)?.fir as? FirRegularClass fun FirAnnotationContainer.nonSourceAnnotations(session: FirSession): List = @@ -42,3 +41,15 @@ fun FirAnnotationContainer.nonSourceAnnotations(session: FirSession): List()?.classId - return classId?.packageFqName?.asString() == "kotlin.jvm" && classId.relativeClassName.asString() == "JvmField" - } - -fun FirAnnotatedDeclaration.hasAnnotation(classId: ClassId): Boolean { - return annotations.any { it.annotationTypeRef.coneTypeSafe()?.classId == classId } -} - inline val FirDeclaration.isFromLibrary: Boolean get() = origin == FirDeclarationOrigin.Library inline val FirDeclaration.isSynthetic: Boolean