[IDEA] Add HTML render for ambiguous callable references diagnostic

^KT-36125 Fixed
This commit is contained in:
Pavel Kirpichenkov
2020-03-18 19:28:43 +03:00
parent a416fde814
commit b7ea590e23
7 changed files with 86 additions and 5 deletions
@@ -0,0 +1,23 @@
// !DIAGNOSTICS_NUMBER: 1
// !DIAGNOSTICS: CALLABLE_REFERENCE_RESOLUTION_AMBIGUITY
// !MESSAGE_TYPE: HTML
package a.b
val ref1 = take(::foo)
fun take(arg: Any) {}
fun <T> foo(a: kotlin.String, t: T) {
}
fun <T> foo(b: String, t : T) {
}
fun foo(i: Int) {
}
class String
@@ -0,0 +1,9 @@
<!-- callableReferenceResolutionAmbiguityHtml1 -->
<html>
Overload resolution ambiguity. All these functions match.
<ul>
<li><b>public</b> <b>fun</b> <`T> foo(b: a.b.String, t: T): Unit <i>defined in</i> a.b <i>in file</i> callableReferenceResolutionAmbiguityHtml.kt</li>
<li><b>public</b> <b>fun</b> foo(i: Int): Unit <i>defined in</i> a.b <i>in file</i> callableReferenceResolutionAmbiguityHtml.kt</li>
<li><b>public</b> <b>fun</b> <`T> foo(a: kotlin.String, t: T): Unit <i>defined in</i> a.b <i>in file</i> callableReferenceResolutionAmbiguityHtml.kt</li>
</ul>
</html>
@@ -0,0 +1,23 @@
// !DIAGNOSTICS_NUMBER: 1
// !DIAGNOSTICS: CALLABLE_REFERENCE_RESOLUTION_AMBIGUITY
// !MESSAGE_TYPE: TEXT
package a.b
val ref1 = take(::foo)
fun take(arg: Any) {}
fun <T> foo(a: kotlin.String, t: T) {
}
fun <T> foo(b: String, t : T) {
}
fun foo(i: Int) {
}
class String
@@ -0,0 +1,5 @@
<!-- callableReferenceResolutionAmbiguityTxt1 -->
Callable reference resolution ambiguity:
public fun <T> foo(b: a.b.String, t: T): Unit defined in a.b in file callableReferenceResolutionAmbiguityTxt.kt
public fun foo(i: Int): Unit defined in a.b in file callableReferenceResolutionAmbiguityTxt.kt
public fun <T> foo(a: kotlin.String, t: T): Unit defined in a.b in file callableReferenceResolutionAmbiguityTxt.kt