diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt index dad9ddc7255..3d13073f33d 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.serialization.constant import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.FirEnumEntry +import org.jetbrains.kotlin.fir.declarations.utils.isConst import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.builder.buildAnnotationArgumentMapping import org.jetbrains.kotlin.fir.expressions.builder.buildAnnotationCall @@ -16,6 +17,7 @@ import org.jetbrains.kotlin.fir.resolve.toFirRegularClassSymbol import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirArrayOfCallTransformer import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirArrayOfCallTransformer.Companion.isArrayOfCall import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.fir.types.ConeClassLikeType import org.jetbrains.kotlin.fir.types.classId import org.jetbrains.kotlin.fir.types.coneTypeSafe @@ -108,6 +110,10 @@ private abstract class FirToConstantValueTransformer( EnumValue(classId, (symbol.fir as FirEnumEntry).name) } + symbol is FirPropertySymbol -> { + if (symbol.fir.isConst) symbol.fir.initializer?.accept(this, data) else null + } + symbol is FirConstructorSymbol -> { val constructorCall = qualifiedAccessExpression as FirFunctionCall val constructedClassSymbol = symbol.containingClassLookupTag()?.toFirRegularClassSymbol(data) ?: return null @@ -220,6 +226,8 @@ internal object FirToConstantValueChecker : FirDefaultVisitor symbol.fir.returnTypeRef.coneTypeSafe()?.classId != null + symbol is FirPropertySymbol -> symbol.fir.isConst + symbol is FirConstructorSymbol -> { symbol.containingClassLookupTag()?.toFirRegularClassSymbol(data)?.classKind == ClassKind.ANNOTATION_CLASS }