[FIR] Improve diagnostic reporting & don't use error symbol for candidate if possible
Also introduce few new diagnostics: - NONE_APPLICABLE more many inapplicable candidates - HIDDEN for visible candidates
This commit is contained in:
committed by
Mikhail Glukhikh
parent
5c0528b61e
commit
f283f2db43
+1
-1
@@ -8,6 +8,6 @@ class Scope<InterfaceT, ImplementationT : InterfaceT>(private val implClass: j.C
|
||||
val hm = c.asSequence()
|
||||
.<!INAPPLICABLE_CANDIDATE!>filter<!>(<!UNRESOLVED_REFERENCE!>implClass::isInstance<!>)
|
||||
.<!INAPPLICABLE_CANDIDATE!>map<!>(<!UNRESOLVED_REFERENCE!>implClass::cast<!>)
|
||||
.<!AMBIGUITY!>toSet<!>()
|
||||
.toSet()
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -11,7 +11,7 @@ suspend fun String.id(): String = this
|
||||
fun box() {
|
||||
val x = "f"
|
||||
builder {
|
||||
<!INAPPLICABLE_CANDIDATE!>go1<!>(x::id)
|
||||
<!INAPPLICABLE_CANDIDATE!>go2<!>(x::id)
|
||||
<!INAPPLICABLE_CANDIDATE!>go1<!>(<!UNRESOLVED_REFERENCE!>x::id<!>)
|
||||
<!INAPPLICABLE_CANDIDATE!>go2<!>(<!UNRESOLVED_REFERENCE!>x::id<!>)
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -15,8 +15,8 @@ suspend fun bar(x: Int) {}
|
||||
|
||||
fun test() {
|
||||
test0(::foo)
|
||||
<!INAPPLICABLE_CANDIDATE!>test1<!>(::foo)
|
||||
<!INAPPLICABLE_CANDIDATE!>test1<!>(<!UNRESOLVED_REFERENCE!>::foo<!>)
|
||||
|
||||
<!INAPPLICABLE_CANDIDATE!>test0<!>(::bar)
|
||||
<!INAPPLICABLE_CANDIDATE!>test0<!>(<!UNRESOLVED_REFERENCE!>::bar<!>)
|
||||
test1(::bar)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,14 +11,14 @@ fun <E> myBuildList(@BuilderInference builderAction: MutableList<E>.() -> Unit)
|
||||
@OptIn(ExperimentalStdlibApi::class)
|
||||
fun main() {
|
||||
val newList1 = myBuildList {
|
||||
<!INAPPLICABLE_CANDIDATE!>addAll<!>(
|
||||
addAll(
|
||||
listOf(1).map { <!INAPPLICABLE_CANDIDATE!>Foo<!>(null) }
|
||||
)
|
||||
}
|
||||
|
||||
val newList2 = buildList {
|
||||
<!INAPPLICABLE_CANDIDATE!>addAll<!>(listOf(1,2,3).map{ <!INAPPLICABLE_CANDIDATE!>Foo<!>(null) })
|
||||
addAll(listOf(1,2,3).map{ <!INAPPLICABLE_CANDIDATE!>Foo<!>(null) })
|
||||
}
|
||||
}
|
||||
|
||||
class Foo(val notNullProp: String)
|
||||
class Foo(val notNullProp: String)
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ fun test() {
|
||||
builder {
|
||||
noParams()
|
||||
yieldString("abc") checkType { _<Unit>() }
|
||||
<!INAPPLICABLE_CANDIDATE!>yieldString<!>(1) <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><Unit>() }
|
||||
<!INAPPLICABLE_CANDIDATE!>yieldString<!>(1) checkType { _<Unit>() }
|
||||
|
||||
await<String> { "123" } checkType { _<String>() }
|
||||
|
||||
@@ -36,7 +36,7 @@ fun test() {
|
||||
|
||||
severalParams("", 89) checkType { _<Double>() }
|
||||
// TODO: should we allow somehow to call with passing continuation explicitly?
|
||||
<!INAPPLICABLE_CANDIDATE!>severalParams<!>("", 89, 6.9) <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><Unit>() }
|
||||
<!INAPPLICABLE_CANDIDATE!>severalParams<!>("", 89, 6.9) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
|
||||
"".stringReceiver(1)
|
||||
Any().anyReceiver(1)
|
||||
|
||||
+3
-3
@@ -23,7 +23,7 @@ fun test() {
|
||||
builder {
|
||||
noParams()
|
||||
yieldString("abc") checkType { _<Unit>() }
|
||||
<!INAPPLICABLE_CANDIDATE!>yieldString<!>(1) <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
<!INAPPLICABLE_CANDIDATE!>yieldString<!>(1) checkType { _<Unit>() }
|
||||
|
||||
await<String> { "123" } checkType { _<String>() }
|
||||
|
||||
@@ -38,7 +38,7 @@ fun test() {
|
||||
severalParams("", 89) checkType { _<Double>() }
|
||||
|
||||
// TODO: should we allow somehow to call with passing continuation explicitly?
|
||||
<!INAPPLICABLE_CANDIDATE!>severalParams<!>("", 89, 6.9) <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
<!INAPPLICABLE_CANDIDATE!>severalParams<!>("", 89, this as Continuation<Double>) <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
<!INAPPLICABLE_CANDIDATE!>severalParams<!>("", 89, 6.9) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
<!INAPPLICABLE_CANDIDATE!>severalParams<!>("", 89, this as Continuation<Double>) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user