Decompiled text: should always render all modifiers even if we don't feel like it

This commit is contained in:
Pavel V. Talanov
2015-12-09 14:34:12 +03:00
parent fee19ad9de
commit 7e6bed7ad8
6 changed files with 23 additions and 2 deletions
@@ -190,6 +190,7 @@ public interface DescriptorRendererOptions {
public var secondaryConstructorsAsPrimary: Boolean
public var renderAccessors: Boolean
public var renderDefaultAnnotationArguments: Boolean
public var alwaysRenderModifiers: Boolean
}
object ExcludedTypeAnnotations {
@@ -491,10 +491,10 @@ internal class DescriptorRendererImpl(
}
private fun renderAdditionalModifiers(functionDescriptor: FunctionDescriptor, builder: StringBuilder) {
if (functionDescriptor.isOperator && functionDescriptor.overriddenDescriptors.none { it.isOperator }) {
if (functionDescriptor.isOperator && (functionDescriptor.overriddenDescriptors.none { it.isOperator } || alwaysRenderModifiers)) {
builder.append("operator ")
}
if (functionDescriptor.isInfix && functionDescriptor.overriddenDescriptors.none { it.isInfix }) {
if (functionDescriptor.isInfix && (functionDescriptor.overriddenDescriptors.none { it.isInfix } || alwaysRenderModifiers)) {
builder.append("infix ")
}
if (functionDescriptor.isExternal) {
@@ -97,4 +97,6 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
override var excludedTypeAnnotationClasses by property(
ExcludedTypeAnnotations.annotationsForNullabilityAndMutability
+ ExcludedTypeAnnotations.internalAnnotationsForResolve)
override var alwaysRenderModifiers by property(false)
}