Add html escaping for declaration names in calls (KT-10763)

#KT-10763 Fixed
This commit is contained in:
Nikolay Krasko
2016-02-10 01:19:12 +03:00
parent 45f21bc7fd
commit 3f5f892e1b
5 changed files with 31 additions and 4 deletions
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.resolve.calls.inference.InferenceErrorData
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
import org.jetbrains.kotlin.resolve.jvm.diagnostics.ConflictingJvmDeclarationsData
import org.jetbrains.kotlin.types.KotlinType
import kotlin.comparisons.*
import kotlin.comparisons.compareBy
object IdeRenderers {
@@ -35,7 +35,7 @@ object IdeRenderers {
calls
.map { it.resultingDescriptor }
.sortedWith(MemberComparator.INSTANCE)
.joinToString("") { "<li>" + DescriptorRenderer.HTML.render(it) + "</li>" }
.joinToString("") { "<li>${DescriptorRenderer.HTML.render(it)}</li>" }
}
@JvmField val HTML_RENDER_TYPE: Renderer<KotlinType> = Renderer {
@@ -47,7 +47,7 @@ object IdeRenderers {
val comparator = compareBy(MemberComparator.INSTANCE) { c: ResolvedCall<*> -> c.resultingDescriptor }
calls
.sortedWith(comparator)
.joinToString("") { "<li>" + renderResolvedCall(it) + "</li>" }
.joinToString("") { "<li>${renderResolvedCall(it)}</li>" }
}
@JvmField val HTML_TYPE_INFERENCE_CONFLICTING_SUBSTITUTIONS_RENDERER: Renderer<InferenceErrorData> = Renderer {
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.idea.highlighter.renderersUtil
import com.google.common.html.HtmlEscapers
import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
@@ -98,7 +99,7 @@ fun <D : CallableDescriptor> renderResolvedCall(resolvedCall: ResolvedCall<D>):
if (receiverParameter != null) {
append(htmlRenderer.renderType(receiverParameter.type)).append(".")
}
append(resultingDescriptor.name).append("(")
append(HtmlEscapers.htmlEscaper().escape(resultingDescriptor.name.asString())).append("(")
append(resultingDescriptor.valueParameters.map { parameter -> renderParameter(parameter) }.joinToString())
append(if (resolvedCall.hasUnmappedArguments()) renderError(")") else ")")