Implemented better rendering for parameters with default values in decompiler and descriptor renderer.
#KT-1582 fixed
This commit is contained in:
@@ -79,7 +79,11 @@ public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
|
||||
|
||||
@Override
|
||||
public Void visitValueParameterDescriptor(ValueParameterDescriptor descriptor, StringBuilder builder) {
|
||||
return super.visitVariableDescriptor(descriptor, builder);
|
||||
super.visitVariableDescriptor(descriptor, builder);
|
||||
if (descriptor.hasDefaultValue()) {
|
||||
builder.append(" = ...");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ public fun Int.ext() : Int {}
|
||||
//internal final fun int() : jet.String defined in <module>.<root>.rendererTest
|
||||
//internal final fun int2(val ints : jet.IntArray) : jet.Int defined in <module>.<root>.rendererTest
|
||||
//value-parameter vararg val ints : jet.IntArray defined in <module>.<root>.rendererTest.int2
|
||||
//private final fun prv(val a : jet.String, val b : jet.Int) : jet.Int defined in <module>.<root>.rendererTest
|
||||
//private final fun prv(val a : jet.String, val b : jet.Int = ...) : jet.Int defined in <module>.<root>.rendererTest
|
||||
//value-parameter val a : jet.String defined in <module>.<root>.rendererTest.prv
|
||||
//value-parameter val b : jet.Int defined in <module>.<root>.rendererTest.prv
|
||||
//public final fun jet.Int.ext() : jet.Int defined in <module>.<root>.rendererTest
|
||||
@@ -179,7 +179,9 @@ class DecompiledDataFactory {
|
||||
|
||||
private void appendDescriptor(DeclarationDescriptor descriptor, String indent) {
|
||||
int startOffset = myBuilder.length();
|
||||
myBuilder.append(DescriptorRenderer.COMPACT.render(descriptor));
|
||||
String renderedDescriptor = DescriptorRenderer.COMPACT.render(descriptor);
|
||||
renderedDescriptor = renderedDescriptor.replace("= ...", "= " + DECOMPILED_COMMENT);
|
||||
myBuilder.append(renderedDescriptor);
|
||||
int endOffset = myBuilder.length();
|
||||
|
||||
if (descriptor instanceof FunctionDescriptor || descriptor instanceof PropertyDescriptor) {
|
||||
|
||||
@@ -17,7 +17,7 @@ package testData.libraries
|
||||
|
||||
[public final fun func(val a : jet.Int, val b : jet.Int) : Unit { /* compiled code */ }]
|
||||
|
||||
[public final fun func(val a : jet.Int, val b : jet.String) : Unit { /* compiled code */ }]
|
||||
[public final fun func(val a : jet.Int, val b : jet.String = /* compiled code */) : Unit { /* compiled code */ }]
|
||||
|
||||
[public final fun func(val str : jet.String) : Unit { /* compiled code */ }]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user