提交 aec021e6 编写于 作者: E Evgeny Gerashchenko

Implemented better rendering for parameters with default values in decompiler...

Implemented better rendering for parameters with default values in decompiler and descriptor renderer.

 #KT-1582 fixed
上级 0d84a045
......@@ -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
\ No newline at end of file
......@@ -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 */ }]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册