[K2/N] Fix property accessors modality in K2 metadata
^KT-56603
This commit is contained in:
committed by
Space Team
parent
aa3c189d83
commit
b01cc1f88c
+6
-2
@@ -79,18 +79,22 @@ class DeclarationPrinter(
|
||||
|
||||
override fun visitPropertyDescriptor(descriptor: PropertyDescriptor, data: Unit) {
|
||||
printer.printPlain(header = headerRenderer.render(descriptor), signature = signatureRenderer.render(descriptor))
|
||||
descriptor.getter?.takeIf { !it.annotations.isEmpty() }?.let { getter ->
|
||||
descriptor.getter?.takeUnless { canSkipAccessor(it, descriptor) }?.let { getter ->
|
||||
printer.pushIndent()
|
||||
printer.printPlain(header = headerRenderer.render(getter), signature = signatureRenderer.render(getter))
|
||||
printer.popIndent()
|
||||
}
|
||||
descriptor.setter?.takeIf { !it.annotations.isEmpty() || it.visibility != descriptor.visibility }?.let { setter ->
|
||||
descriptor.setter?.takeUnless { canSkipAccessor(it, descriptor) }?.let { setter ->
|
||||
printer.pushIndent()
|
||||
printer.printPlain(header = headerRenderer.render(setter), signature = signatureRenderer.render(setter))
|
||||
printer.popIndent()
|
||||
}
|
||||
}
|
||||
|
||||
private fun canSkipAccessor(accessor: PropertyAccessorDescriptor, property: PropertyDescriptor) : Boolean {
|
||||
return accessor.annotations.isEmpty() && accessor.visibility == property.visibility && accessor.modality == property.modality
|
||||
}
|
||||
|
||||
override fun visitConstructorDescriptor(descriptor: ConstructorDescriptor, data: Unit) {
|
||||
printer.printPlain(header = headerRenderer.render(descriptor), signature = signatureRenderer.render(descriptor))
|
||||
}
|
||||
|
||||
+3
@@ -48,6 +48,9 @@ object DefaultDeclarationHeaderRenderer : DeclarationHeaderRenderer {
|
||||
if (descriptor.visibility != DescriptorVisibilities.DEFAULT_VISIBILITY) {
|
||||
append(descriptor.visibility.internalDisplayName).append(" ")
|
||||
}
|
||||
if (descriptor.modality != descriptor.correspondingProperty.modality) {
|
||||
append(descriptor.modality.name.lowercase()).append(" ")
|
||||
}
|
||||
when (descriptor) {
|
||||
is PropertyGetterDescriptor -> append("get")
|
||||
is PropertySetterDescriptor -> append("set")
|
||||
|
||||
Reference in New Issue
Block a user