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 595ac8aefce..8ab57c2989d 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 @@ -667,15 +667,18 @@ class FirElementSerializer private constructor( } private fun getAccessorFlags(accessor: FirPropertyAccessor, property: FirProperty): Int { + // [FirDefaultPropertyAccessor]---a property accessor without body---can still hold other information, such as annotations, + // user-contributed visibility, and modifiers, such as `external` or `inline`. val isDefault = accessor is FirDefaultPropertyAccessor && - accessor.annotations.isEmpty() && accessor.visibility == property.visibility + accessor.annotations.isEmpty() && accessor.visibility == property.visibility && + !accessor.isExternal && !accessor.isInline return Flags.getAccessorFlags( accessor.nonSourceAnnotations(session).isNotEmpty(), ProtoEnumFlags.visibility(normalizeVisibility(accessor)), ProtoEnumFlags.modality(accessor.modality!!), !isDefault, - accessor.status.isExternal, - accessor.status.isInline + accessor.isExternal, + accessor.isInline ) } diff --git a/compiler/testData/codegen/box/reflection/modifiers/functions.kt b/compiler/testData/codegen/box/reflection/modifiers/functions.kt index 36023cde159..399a71935b2 100644 --- a/compiler/testData/codegen/box/reflection/modifiers/functions.kt +++ b/compiler/testData/codegen/box/reflection/modifiers/functions.kt @@ -1,5 +1,4 @@ // !LANGUAGE: +ReleaseCoroutines -// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND: JS_IR // IGNORE_BACKEND: JS_IR_ES6 // TODO: muted automatically, investigate should it be ran for JS or not