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
|
@Override
|
||||||
public Void visitValueParameterDescriptor(ValueParameterDescriptor descriptor, StringBuilder builder) {
|
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 int() : jet.String defined in <module>.<root>.rendererTest
|
||||||
//internal final fun int2(val ints : jet.IntArray) : jet.Int 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
|
//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 a : jet.String defined in <module>.<root>.rendererTest.prv
|
||||||
//value-parameter val b : jet.Int 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
|
//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) {
|
private void appendDescriptor(DeclarationDescriptor descriptor, String indent) {
|
||||||
int startOffset = myBuilder.length();
|
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();
|
int endOffset = myBuilder.length();
|
||||||
|
|
||||||
if (descriptor instanceof FunctionDescriptor || descriptor instanceof PropertyDescriptor) {
|
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.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 */ }]
|
[public final fun func(val str : jet.String) : Unit { /* compiled code */ }]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user