Render header/impl on properties in tests and diagnostic messages

As a side effect, header/impl and some other modifiers on functions are now
rendered in a different, more natural, order
This commit is contained in:
Alexander Udalov
2016-12-21 12:38:47 +03:00
parent 5556c59fc9
commit e4e50017d0
13 changed files with 59 additions and 55 deletions
@@ -522,6 +522,16 @@ internal class DescriptorRendererImpl(
}
}
private fun renderCallableModifiers(descriptor: CallableMemberDescriptor, builder: StringBuilder) {
renderExternal(descriptor, builder)
if (descriptor.isHeader) {
builder.append("header ")
}
if (descriptor.isImpl) {
builder.append("impl ")
}
}
private fun renderExternal(memberDescriptor: MemberDescriptor, builder: StringBuilder) {
if (memberDescriptor.isExternal) {
builder.append("external ")
@@ -541,7 +551,7 @@ internal class DescriptorRendererImpl(
if (functionDescriptor.isInfix && (functionDescriptor.overriddenDescriptors.none { it.isInfix } || alwaysRenderModifiers)) {
builder.append("infix ")
}
renderExternal(functionDescriptor, builder)
renderCallableModifiers(functionDescriptor, builder)
if (functionDescriptor.isInline) {
builder.append("inline ")
}
@@ -551,12 +561,6 @@ internal class DescriptorRendererImpl(
if (functionDescriptor.isSuspend) {
builder.append("suspend ")
}
if (functionDescriptor.isHeader) {
builder.append("header ")
}
if (functionDescriptor.isImpl) {
builder.append("impl ")
}
}
override fun render(declarationDescriptor: DeclarationDescriptor): String {
@@ -849,7 +853,7 @@ internal class DescriptorRendererImpl(
builder.append("const ")
}
renderExternal(property, builder)
renderCallableModifiers(property, builder)
renderModalityForCallable(property, builder)
renderOverride(property, builder)
renderLateInit(property, builder)
@@ -997,7 +1001,7 @@ internal class DescriptorRendererImpl(
}
private fun renderAccessorModifiers(descriptor: PropertyAccessorDescriptor, builder: StringBuilder) {
renderExternal(descriptor, builder)
renderCallableModifiers(descriptor, builder)
}
/* STUPID DISPATCH-ONLY VISITOR */