FIR serializer: regard property accessors with modifiers as non-default
This commit is contained in:
committed by
Mikhail Glukhikh
parent
bbfc1a10ad
commit
67044f22ed
+6
-3
@@ -667,15 +667,18 @@ class FirElementSerializer private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getAccessorFlags(accessor: FirPropertyAccessor, property: FirProperty): Int {
|
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 &&
|
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(
|
return Flags.getAccessorFlags(
|
||||||
accessor.nonSourceAnnotations(session).isNotEmpty(),
|
accessor.nonSourceAnnotations(session).isNotEmpty(),
|
||||||
ProtoEnumFlags.visibility(normalizeVisibility(accessor)),
|
ProtoEnumFlags.visibility(normalizeVisibility(accessor)),
|
||||||
ProtoEnumFlags.modality(accessor.modality!!),
|
ProtoEnumFlags.modality(accessor.modality!!),
|
||||||
!isDefault,
|
!isDefault,
|
||||||
accessor.status.isExternal,
|
accessor.isExternal,
|
||||||
accessor.status.isInline
|
accessor.isInline
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
// !LANGUAGE: +ReleaseCoroutines
|
// !LANGUAGE: +ReleaseCoroutines
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// IGNORE_BACKEND: JS_IR
|
// IGNORE_BACKEND: JS_IR
|
||||||
// IGNORE_BACKEND: JS_IR_ES6
|
// IGNORE_BACKEND: JS_IR_ES6
|
||||||
// TODO: muted automatically, investigate should it be ran for JS or not
|
// TODO: muted automatically, investigate should it be ran for JS or not
|
||||||
|
|||||||
Reference in New Issue
Block a user