Added rendering vararg keywords and valid parameter type in this case.
#KT-1840 fixed
This commit is contained in:
@@ -252,9 +252,6 @@ public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
|
||||
@Override
|
||||
public Void visitValueParameterDescriptor(ValueParameterDescriptor descriptor, StringBuilder builder) {
|
||||
builder.append(renderKeyword("value-parameter")).append(" ");
|
||||
if (descriptor.getVarargElementType() != null) {
|
||||
builder.append(renderKeyword("vararg")).append(" ");
|
||||
}
|
||||
return super.visitValueParameterDescriptor(descriptor, builder);
|
||||
}
|
||||
|
||||
@@ -264,12 +261,20 @@ public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
|
||||
}
|
||||
|
||||
protected Void visitVariableDescriptor(VariableDescriptor descriptor, StringBuilder builder, boolean skipValVar) {
|
||||
JetType type = descriptor.getType();
|
||||
if (descriptor instanceof ValueParameterDescriptor) {
|
||||
JetType varargElementType = ((ValueParameterDescriptor)descriptor).getVarargElementType();
|
||||
if (varargElementType != null) {
|
||||
builder.append(renderKeyword("vararg")).append(" ");
|
||||
type = varargElementType;
|
||||
}
|
||||
}
|
||||
String typeString = renderPropertyPrefixAndComputeTypeString(
|
||||
builder,
|
||||
skipValVar ? null : descriptor.isVar(),
|
||||
Collections.<TypeParameterDescriptor>emptyList(),
|
||||
ReceiverDescriptor.NO_RECEIVER,
|
||||
descriptor.getType());
|
||||
type);
|
||||
renderName(descriptor, builder);
|
||||
builder.append(" : ").append(escape(typeString));
|
||||
return super.visitVariableDescriptor(descriptor, builder);
|
||||
|
||||
@@ -15,8 +15,8 @@ public fun <out T> withTypeParam(a : Array<T>) : Int {}
|
||||
//package rendererTest defined in root package
|
||||
//public final fun pub() : Unit defined in rendererTest
|
||||
//internal final fun int() : jet.String defined in rendererTest
|
||||
//internal final fun int2(ints : jet.IntArray) : jet.Int defined in rendererTest
|
||||
//value-parameter vararg val ints : jet.IntArray defined in rendererTest.int2
|
||||
//internal final fun int2(vararg ints : jet.Int) : jet.Int defined in rendererTest
|
||||
//value-parameter vararg val ints : jet.Int defined in rendererTest.int2
|
||||
//private final fun prv(a : jet.String, b : jet.Int = ...) : jet.Int defined in rendererTest
|
||||
//value-parameter val a : jet.String defined in rendererTest.prv
|
||||
//value-parameter val b : jet.Int defined in rendererTest.prv
|
||||
|
||||
Reference in New Issue
Block a user