Decompiled text: should always render all modifiers even if we don't feel like it
This commit is contained in:
@@ -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)
|
||||
}
|
||||
+1
@@ -50,6 +50,7 @@ fun DescriptorRendererOptions.defaultDecompilerRendererOptions() {
|
||||
secondaryConstructorsAsPrimary = false
|
||||
modifiers = DescriptorRendererModifier.ALL
|
||||
excludedTypeAnnotationClasses = ExcludedTypeAnnotations.annotationsForNullabilityAndMutability
|
||||
alwaysRenderModifiers = true
|
||||
}
|
||||
|
||||
public fun buildDecompiledText(
|
||||
|
||||
@@ -14,5 +14,7 @@ data class Modifiers(val x: Int) {
|
||||
|
||||
inline fun inlined(crossinline arg1: ()->Unit, noinline arg2: ()->Unit): Unit {}
|
||||
|
||||
override operator fun equals(other: Any?) = false
|
||||
|
||||
annotation class Ann
|
||||
}
|
||||
@@ -36,6 +36,21 @@ PsiJetFileStubImpl[package=test]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=Int]
|
||||
FUN:[fqName=test.Modifiers.equals, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, name=equals]
|
||||
MODIFIER_LIST:[open public operator]
|
||||
VALUE_PARAMETER_LIST:
|
||||
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=other]
|
||||
TYPE_REFERENCE:
|
||||
NULLABLE_TYPE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=Any]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=Boolean]
|
||||
FUN:[fqName=test.Modifiers.extFun, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, name=extFun]
|
||||
MODIFIER_LIST:[public final external]
|
||||
VALUE_PARAMETER_LIST:
|
||||
|
||||
Reference in New Issue
Block a user