Refactor DescriptorRenderer's renderAccessors option
In some tests with txt (probably all except loadJava), property accessors are not rendered at all, so a third option value (NONE) will be useful to determine whether we need to render annotations on property accessors as get/set/sparam-targeted annotations on the property
This commit is contained in:
@@ -210,7 +210,7 @@ interface DescriptorRendererOptions {
|
||||
var typeNormalizer: (KotlinType) -> KotlinType
|
||||
var defaultParameterValueRenderer: ((ValueParameterDescriptor) -> String)?
|
||||
var secondaryConstructorsAsPrimary: Boolean
|
||||
var renderAccessors: Boolean
|
||||
var propertyAccessorRenderingPolicy: PropertyAccessorRenderingPolicy
|
||||
var renderDefaultAnnotationArguments: Boolean
|
||||
var alwaysRenderModifiers: Boolean
|
||||
var renderConstructorKeyword: Boolean
|
||||
@@ -251,6 +251,12 @@ enum class ParameterNameRenderingPolicy {
|
||||
NONE
|
||||
}
|
||||
|
||||
enum class PropertyAccessorRenderingPolicy {
|
||||
PRETTY,
|
||||
DEBUG,
|
||||
NONE
|
||||
}
|
||||
|
||||
enum class DescriptorRendererModifier(val includeByDefault: Boolean) {
|
||||
VISIBILITY(true),
|
||||
MODALITY(true),
|
||||
|
||||
@@ -985,25 +985,25 @@ internal class DescriptorRendererImpl(
|
||||
}
|
||||
|
||||
override fun visitPropertyGetterDescriptor(descriptor: PropertyGetterDescriptor, builder: StringBuilder) {
|
||||
if (renderAccessors) {
|
||||
renderAccessorModifiers(descriptor, builder)
|
||||
builder.append("getter for ")
|
||||
renderProperty(descriptor.correspondingProperty, builder)
|
||||
}
|
||||
else {
|
||||
visitFunctionDescriptor(descriptor, builder)
|
||||
}
|
||||
|
||||
visitPropertyAccessorDescriptor(descriptor, builder, "getter")
|
||||
}
|
||||
|
||||
override fun visitPropertySetterDescriptor(descriptor: PropertySetterDescriptor, builder: StringBuilder) {
|
||||
if (renderAccessors) {
|
||||
renderAccessorModifiers(descriptor, builder)
|
||||
builder.append("setter for ")
|
||||
renderProperty(descriptor.correspondingProperty, builder)
|
||||
}
|
||||
else {
|
||||
visitFunctionDescriptor(descriptor, builder)
|
||||
visitPropertyAccessorDescriptor(descriptor, builder, "setter")
|
||||
}
|
||||
|
||||
private fun visitPropertyAccessorDescriptor(descriptor: PropertyAccessorDescriptor, builder: StringBuilder, kind: String) {
|
||||
when (propertyAccessorRenderingPolicy) {
|
||||
PropertyAccessorRenderingPolicy.PRETTY -> {
|
||||
renderAccessorModifiers(descriptor, builder)
|
||||
builder.append("$kind for ")
|
||||
renderProperty(descriptor.correspondingProperty, builder)
|
||||
}
|
||||
PropertyAccessorRenderingPolicy.DEBUG -> {
|
||||
visitFunctionDescriptor(descriptor, builder)
|
||||
}
|
||||
PropertyAccessorRenderingPolicy.NONE -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
|
||||
override var parameterNameRenderingPolicy by property(ParameterNameRenderingPolicy.ALL)
|
||||
override var receiverAfterName by property(false)
|
||||
override var renderCompanionObjectName by property(false)
|
||||
override var renderAccessors by property(false)
|
||||
override var propertyAccessorRenderingPolicy by property(PropertyAccessorRenderingPolicy.DEBUG)
|
||||
override var renderDefaultAnnotationArguments by property(false)
|
||||
|
||||
override var eachAnnotationOnNewLine: Boolean by property(false)
|
||||
|
||||
Reference in New Issue
Block a user