From 80b95a22a4a56b2aa7d749c249afeefed7eace76 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Fri, 29 Jan 2021 23:29:51 +0300 Subject: [PATCH] [Commonizer] Fix property backing/delegate field annotations serialization --- .../kotlin/descriptors/commonizer/metadata/builders.kt | 1 + .../kotlin/descriptors/commonizer/metadata/flags.kt | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/builders.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/builders.kt index 172d7f40c90..24d00079711 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/builders.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/builders.kt @@ -151,6 +151,7 @@ internal fun CirProperty.buildProperty( getterFlags = getter?.propertyAccessorFlags(this, this) ?: NO_FLAGS, setterFlags = setter?.let { setter -> setter.propertyAccessorFlags(setter, this) } ?: NO_FLAGS ).also { property -> + // TODO unclear where to write backing/delegate field annotations, see KT-44625 annotations.mapTo(property.annotations) { it.buildAnnotation() } getter?.annotations?.mapTo(property.getterAnnotations) { it.buildAnnotation() } setter?.annotations?.mapTo(property.setterAnnotations) { it.buildAnnotation() } diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/flags.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/flags.kt index 8b4a1456c30..59f2a0bde4a 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/flags.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/flags.kt @@ -104,6 +104,12 @@ internal fun CirTypeAlias.typeAliasFlags(): Flags = private inline val CirHasAnnotations.hasAnnotationsFlag: Flag? get() = if (annotations.isNotEmpty()) Flag.Common.HAS_ANNOTATIONS else null +private inline val CirProperty.hasAnnotationsFlag: Flag? + get() = if (annotations.isNotEmpty() || !backingFieldAnnotations.isNullOrEmpty() || !delegateFieldAnnotations.isNullOrEmpty()) + Flag.Common.HAS_ANNOTATIONS + else + null + private inline val CirHasVisibility.visibilityFlag: Flag get() = when (visibility) { DescriptorVisibilities.PUBLIC -> Flag.Common.IS_PUBLIC