From 639b0cc525ca55d266d3188485093c9b6bbf66e9 Mon Sep 17 00:00:00 2001 From: Vladimir Sukharev Date: Wed, 29 Mar 2023 18:00:09 +0200 Subject: [PATCH] Revert "[K2/N] KT-56190 Serialize simple const property initializers" This reverts commit 2ace8ba9bdfb76e0e924e60729f688617902c428. --- .../serialization/FirAnnotationSerializer.kt | 4 ---- .../fir/serialization/FirElementSerializer.kt | 5 +---- .../kotlin/backend/konan/FirSerializer.kt | 8 ------- .../compileTimeConstants.kt | 4 +--- .../nestedClassesAndObjects.kt | 6 ++--- .../nestedClassesAndObjects.txt | 22 ++++++++----------- .../propertyAccessorAnnotations.kt | 2 ++ 7 files changed, 15 insertions(+), 36 deletions(-) diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirAnnotationSerializer.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirAnnotationSerializer.kt index 23323d51201..a8a007c93bc 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirAnnotationSerializer.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirAnnotationSerializer.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.serialization import org.jetbrains.kotlin.fir.FirSession 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.resolve.toSymbol import org.jetbrains.kotlin.fir.serialization.constant.ConstantValue @@ -45,7 +44,4 @@ class FirAnnotationSerializer(private val session: FirSession, internal val stri FirAnnotationArgumentVisitorData(this@FirAnnotationSerializer, this) ) } - - fun valueProto(constExpression: FirConstExpression<*>): ProtoBuf.Annotation.Argument.Value.Builder? = - constExpression.toConstantValue(session)?.let { valueProto(it) } } diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt index c96a0b91efc..98ec272b244 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt @@ -373,15 +373,12 @@ class FirElementSerializer private constructor( } } - val hasConstant = !property.isVar && property.initializer?.let { - it is FirConstExpression<*> && it.value != null - } ?: false val flags = Flags.getPropertyFlags( hasAnnotations, ProtoEnumFlags.visibility(normalizeVisibility(property)), ProtoEnumFlags.modality(modality), ProtoBuf.MemberKind.DECLARATION, - property.isVar, hasGetter, hasSetter, hasConstant, property.isConst, property.isLateInit, + property.isVar, hasGetter, hasSetter, property.isConst, property.isConst, property.isLateInit, property.isExternal, property.delegateFieldSymbol != null, property.isExpect ) if (flags != builder.flags) { diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirSerializer.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirSerializer.kt index 90372502f20..2e671273622 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirSerializer.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirSerializer.kt @@ -22,8 +22,6 @@ import org.jetbrains.kotlin.fir.serialization.FirElementAwareSerializableStringT import org.jetbrains.kotlin.fir.serialization.FirElementSerializer import org.jetbrains.kotlin.fir.serialization.FirKLibSerializerExtension import org.jetbrains.kotlin.fir.serialization.serializeSingleFirFile -import org.jetbrains.kotlin.fir.expressions.FirConstExpression -import org.jetbrains.kotlin.fir.serialization.* import org.jetbrains.kotlin.ir.declarations.IrModuleFragment import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.util.IrMessageLogger @@ -33,11 +31,9 @@ import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf import org.jetbrains.kotlin.library.metadata.resolver.TopologicalLibraryOrder import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion -import org.jetbrains.kotlin.metadata.deserialization.Flags import org.jetbrains.kotlin.metadata.serialization.MutableVersionRequirementTable import org.jetbrains.kotlin.psi import org.jetbrains.kotlin.utils.toMetadataVersion -import org.jetbrains.kotlin.resolve.constants.NullValue internal fun PhaseContext.firSerializer( input: Fir2IrOutput @@ -198,10 +194,6 @@ class FirNativeKLibSerializerExtension( property.setter?.nonSourceAnnotations(session)?.forEach { proto.addExtension(KlibMetadataProtoBuf.propertySetterAnnotation, annotationSerializer.serializeAnnotation(it)) } - if (Flags.HAS_CONSTANT.get(proto.flags)) - annotationSerializer.valueProto(property.initializer as FirConstExpression<*>)?.let { constBuilder -> - proto.setExtension(KlibMetadataProtoBuf.compileTimeValue, constBuilder.build()) - } // TODO KT-56090 Serialize KDocString super.serializeProperty(property, proto, versionRequirementTable, childSerializer) } diff --git a/native/native.tests/testData/klibContents/builtinsSerializer/compileTimeConstants.kt b/native/native.tests/testData/klibContents/builtinsSerializer/compileTimeConstants.kt index 4a97a627e27..d38cbb55376 100644 --- a/native/native.tests/testData/klibContents/builtinsSerializer/compileTimeConstants.kt +++ b/native/native.tests/testData/klibContents/builtinsSerializer/compileTimeConstants.kt @@ -1,7 +1,5 @@ -// KT-56190: the following properties miss their initializers: arrayConst, b, enumConst +// KT-56190 K2 does not emit const initializers // MUTED_WHEN: K2 -// IGNORE_BACKEND_K2 - package test enum class Weapon { diff --git a/native/native.tests/testData/klibContents/builtinsSerializer/nestedClassesAndObjects.kt b/native/native.tests/testData/klibContents/builtinsSerializer/nestedClassesAndObjects.kt index 84f378deee7..bbe8ebc0462 100644 --- a/native/native.tests/testData/klibContents/builtinsSerializer/nestedClassesAndObjects.kt +++ b/native/native.tests/testData/klibContents/builtinsSerializer/nestedClassesAndObjects.kt @@ -1,3 +1,5 @@ +// KT-56190 K2 does not emit const initializers +// MUTED_WHEN: K2 package test class ClassA { @@ -16,9 +18,7 @@ class ClassA { inner class classC { val memberFromC: Int = 200 } -} -class E { companion object { val stat: Int = 250 @@ -26,9 +26,7 @@ class E { val memberFromD: Int = 275 } } -} -class F { object ObjA { val memberFromObjA: Int = 300 } diff --git a/native/native.tests/testData/klibContents/builtinsSerializer/nestedClassesAndObjects.txt b/native/native.tests/testData/klibContents/builtinsSerializer/nestedClassesAndObjects.txt index b6dacc8b108..e6b2e12cbcc 100644 --- a/native/native.tests/testData/klibContents/builtinsSerializer/nestedClassesAndObjects.txt +++ b/native/native.tests/testData/klibContents/builtinsSerializer/nestedClassesAndObjects.txt @@ -1,4 +1,13 @@ class ClassA constructor() { + companion object { + val stat: Int = 250 + class D constructor() { + val memberFromD: Int = 275 + } + } + object ObjA { + val memberFromObjA: Int = 300 + } class classB constructor() { fun memberFromB(): Int class BC constructor() { @@ -11,17 +20,4 @@ inner class classC constructor() { val memberFromC: Int = 200 } - } - class E constructor() { - companion object { - val stat: Int = 250 - class D constructor() { - val memberFromD: Int = 275 - } - } - } - class F constructor() { - object ObjA { - val memberFromObjA: Int = 300 - } } \ No newline at end of file diff --git a/native/native.tests/testData/klibContents/builtinsSerializer/propertyAccessorAnnotations.kt b/native/native.tests/testData/klibContents/builtinsSerializer/propertyAccessorAnnotations.kt index c811408f596..7715a293ffa 100644 --- a/native/native.tests/testData/klibContents/builtinsSerializer/propertyAccessorAnnotations.kt +++ b/native/native.tests/testData/klibContents/builtinsSerializer/propertyAccessorAnnotations.kt @@ -1,3 +1,5 @@ +// KT-56190 K2 does not emit const initializers +// MUTED_WHEN: K2 package test annotation class Anno(val value: String)