Rendering real type for vararg parameter.

This commit is contained in:
Evgeny Gerashchenko
2012-12-25 02:56:58 +04:00
parent 3e7ce13893
commit 93680e1233
@@ -497,21 +497,26 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
}
private void renderVariable(@NotNull VariableDescriptor variable, @NotNull StringBuilder builder, boolean topLevel) {
JetType type = variable.getType();
if (variable instanceof ValueParameterDescriptor) {
JetType varargElementType = ((ValueParameterDescriptor) variable).getVarargElementType();
if (varargElementType != null) {
builder.append(renderKeyword("vararg")).append(" ");
type = varargElementType;
}
}
JetType realType = variable.getType();
JetType varargElementType = variable instanceof ValueParameterDescriptor
? ((ValueParameterDescriptor) variable).getVarargElementType()
: null;
JetType typeToRender = varargElementType != null ? varargElementType : realType;
if (varargElementType != null) {
builder.append(renderKeyword("vararg")).append(" ");
}
if (topLevel && !startFromName) {
renderValVarPrefix(variable, builder);
}
renderName(variable, builder);
builder.append(" : ").append(escape(renderType(type)));
builder.append(" : ").append(escape(renderType(typeToRender)));
if (verbose && varargElementType != null) {
builder.append(" /*").append(escape(renderType(realType))).append("*/");
}
}
private void renderProperty(@NotNull PropertyDescriptor property, @NotNull StringBuilder builder) {