FIR serializer: regard property accessors with modifiers as non-default

This commit is contained in:
Jinseong Jeon
2020-06-18 15:51:39 -07:00
committed by Mikhail Glukhikh
parent bbfc1a10ad
commit 67044f22ed
2 changed files with 6 additions and 4 deletions
@@ -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
)
}
@@ -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