diff --git a/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java b/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java index fe48060d1bd..92ba84da251 100644 --- a/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java +++ b/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java @@ -252,9 +252,6 @@ public class DescriptorRenderer implements Renderer { @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 { } 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.emptyList(), ReceiverDescriptor.NO_RECEIVER, - descriptor.getType()); + type); renderName(descriptor, builder); builder.append(" : ").append(escape(typeString)); return super.visitVariableDescriptor(descriptor, builder); diff --git a/compiler/testData/renderer/GlobalFunctions.kt b/compiler/testData/renderer/GlobalFunctions.kt index a8a859da282..b2226aa8547 100644 --- a/compiler/testData/renderer/GlobalFunctions.kt +++ b/compiler/testData/renderer/GlobalFunctions.kt @@ -15,8 +15,8 @@ public fun withTypeParam(a : Array) : 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