diff --git a/idea/src/org/jetbrains/jet/plugin/highlighter/renderersUtil.kt b/idea/src/org/jetbrains/jet/plugin/highlighter/renderersUtil.kt index dcc41b5a073..bf7b2a8d467 100644 --- a/idea/src/org/jetbrains/jet/plugin/highlighter/renderersUtil.kt +++ b/idea/src/org/jetbrains/jet/plugin/highlighter/renderersUtil.kt @@ -30,40 +30,35 @@ import org.jetbrains.jet.lang.resolve.name.FqName import org.jetbrains.jet.plugin.highlighter.IdeRenderers fun renderResolvedCall(resolvedCall: ResolvedCall): String { + val htmlRenderer = DescriptorRenderer.HTML + fun renderParameter(parameter: ValueParameterDescriptor): String { + val varargElementType = parameter.getVarargElementType() + val parameterType = varargElementType ?: parameter.getType() + val renderedParameter = + (if (varargElementType != null) "vararg " else "") + + htmlRenderer.renderType(parameterType) + + if (parameter.hasDefaultValue()) " = ..." else "" + if (resolvedCall.hasErrorOnParameter(parameter)) { + return IdeRenderers.error(renderedParameter) + } + return renderedParameter + } + val stringBuilder = StringBuilder("") val funDescriptor = resolvedCall.getResultingDescriptor() - val htmlRenderer = DescriptorRenderer.HTML val receiverParameter = funDescriptor.getReceiverParameter() if (receiverParameter != null) { stringBuilder.append(htmlRenderer.renderType(receiverParameter.getType())).append(".") } stringBuilder.append(funDescriptor.getName()).append("(") - var first = true - for (parameter in funDescriptor.getValueParameters()) { - if (!first) { - stringBuilder.append(", ") - } - var parameterType = parameter.getType() - val varargElementType = parameter.getVarargElementType() - if (varargElementType != null) { - parameterType = varargElementType - } - var paramString: String = (if (varargElementType != null) "vararg " else "") + htmlRenderer.renderType(parameterType) - if (parameter.hasDefaultValue()) { - paramString += " = ..." - } - if (resolvedCall.hasErrorOnParameter(parameter)) { - paramString = IdeRenderers.error(paramString) - } - stringBuilder.append(paramString) - - first = false - } + stringBuilder.append(funDescriptor.getValueParameters().map(::renderParameter).makeString(",")) stringBuilder.append(if (resolvedCall.hasUnmappedArguments()) IdeRenderers.error(")") else ")") + stringBuilder.append(" defined in ") val containingDeclaration = funDescriptor.getContainingDeclaration() val fqName = DescriptorUtils.getFqName(containingDeclaration) stringBuilder.append(if (FqName.ROOT.equalsTo(fqName)) "root package" else fqName.asString()) return stringBuilder.toString() -} \ No newline at end of file +} +