[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
@@ -19,5 +19,5 @@ package c
|
||||
import b.F
|
||||
|
||||
fun f() {
|
||||
F().<!INAPPLICABLE_CANDIDATE!>m<!>
|
||||
F().<!HIDDEN!>m<!>
|
||||
}
|
||||
|
||||
@@ -26,19 +26,19 @@ package b
|
||||
|
||||
import a.MyJavaClass
|
||||
|
||||
val mc1 = <!INAPPLICABLE_CANDIDATE!>MyJavaClass<!>()
|
||||
val mc1 = <!HIDDEN!>MyJavaClass<!>()
|
||||
|
||||
val x = <!INAPPLICABLE_CANDIDATE!>MyJavaClass<!>.<!UNRESOLVED_REFERENCE!>staticMethod<!>()
|
||||
val y = <!INAPPLICABLE_CANDIDATE!>MyJavaClass<!>.<!UNRESOLVED_REFERENCE!>NestedClass<!>.<!UNRESOLVED_REFERENCE!>staticMethodOfNested<!>()
|
||||
val z = <!INAPPLICABLE_CANDIDATE!>MyJavaClass<!>.<!UNRESOLVED_REFERENCE!>NestedClass<!>()
|
||||
val x = MyJavaClass.<!HIDDEN!>staticMethod<!>()
|
||||
val y = MyJavaClass.NestedClass.<!HIDDEN!>staticMethodOfNested<!>()
|
||||
val z = MyJavaClass.<!HIDDEN!>NestedClass<!>()
|
||||
|
||||
//FILE: c.kt
|
||||
package a.c
|
||||
|
||||
import a.MyJavaClass
|
||||
|
||||
val mc1 = <!INAPPLICABLE_CANDIDATE!>MyJavaClass<!>()
|
||||
val mc1 = <!HIDDEN!>MyJavaClass<!>()
|
||||
|
||||
val x = <!INAPPLICABLE_CANDIDATE!>MyJavaClass<!>.<!UNRESOLVED_REFERENCE!>staticMethod<!>()
|
||||
val y = <!INAPPLICABLE_CANDIDATE!>MyJavaClass<!>.<!UNRESOLVED_REFERENCE!>NestedClass<!>.<!UNRESOLVED_REFERENCE!>staticMethodOfNested<!>()
|
||||
val z = <!INAPPLICABLE_CANDIDATE!>MyJavaClass<!>.<!UNRESOLVED_REFERENCE!>NestedClass<!>()
|
||||
val x = MyJavaClass.<!HIDDEN!>staticMethod<!>()
|
||||
val y = MyJavaClass.NestedClass.<!HIDDEN!>staticMethodOfNested<!>()
|
||||
val z = MyJavaClass.<!HIDDEN!>NestedClass<!>()
|
||||
|
||||
+4
-4
@@ -19,9 +19,9 @@ public abstract class CollectionWithSize implements java.util.Collection<String>
|
||||
// FILE: main.kt
|
||||
|
||||
fun main(c: CollectionWithSize) {
|
||||
CompressionType.ZIP.<!AMBIGUITY!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><Double>() }
|
||||
c.<!AMBIGUITY!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><String>() }
|
||||
CompressionType.ZIP.<!AMBIGUITY!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Double>() }
|
||||
c.<!AMBIGUITY!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
|
||||
|
||||
<!UNRESOLVED_REFERENCE!>CompressionType.ZIP::name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
<!UNRESOLVED_REFERENCE!>c::size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
<!UNRESOLVED_REFERENCE!>CompressionType.ZIP::name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
<!UNRESOLVED_REFERENCE!>c::size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
}
|
||||
|
||||
+4
-4
@@ -20,9 +20,9 @@ public abstract class CollectionWithSize implements java.util.Collection<String>
|
||||
// FILE: main.kt
|
||||
|
||||
fun main(c: CollectionWithSize) {
|
||||
CompressionType.ZIP.<!AMBIGUITY!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><Double>() }
|
||||
c.<!AMBIGUITY!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><String>() }
|
||||
CompressionType.ZIP.<!AMBIGUITY!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Double>() }
|
||||
c.<!AMBIGUITY!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
|
||||
|
||||
<!UNRESOLVED_REFERENCE!>CompressionType.ZIP::name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
<!UNRESOLVED_REFERENCE!>c::size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
<!UNRESOLVED_REFERENCE!>CompressionType.ZIP::name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
<!UNRESOLVED_REFERENCE!>c::size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
}
|
||||
|
||||
+4
-4
@@ -19,9 +19,9 @@ public abstract class CollectionWithSize implements java.util.Collection<String>
|
||||
// FILE: main.kt
|
||||
|
||||
fun main(c: CollectionWithSize) {
|
||||
CompressionType.ZIP.<!AMBIGUITY!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><Double>() }
|
||||
c.<!AMBIGUITY!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><String>() }
|
||||
CompressionType.ZIP.<!AMBIGUITY!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Double>() }
|
||||
c.<!AMBIGUITY!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
|
||||
|
||||
<!UNRESOLVED_REFERENCE!>CompressionType.ZIP::name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
<!UNRESOLVED_REFERENCE!>c::size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
<!UNRESOLVED_REFERENCE!>CompressionType.ZIP::name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
<!UNRESOLVED_REFERENCE!>c::size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
}
|
||||
|
||||
+2
-2
@@ -17,5 +17,5 @@ public class A {
|
||||
package bar
|
||||
|
||||
fun main() {
|
||||
foo.A.<!INAPPLICABLE_CANDIDATE!>f<!> {}
|
||||
}
|
||||
foo.A.<!HIDDEN!>f<!> {}
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -18,7 +18,7 @@ public class Inv<T> {
|
||||
|
||||
fun test(inv: Inv<String>) {
|
||||
val m: ((String) -> String) -> Inv<String> = inv::map
|
||||
<!INAPPLICABLE_CANDIDATE!>take<!>(inv::map)
|
||||
<!INAPPLICABLE_CANDIDATE!>take<!>(<!UNRESOLVED_REFERENCE!>inv::map<!>)
|
||||
}
|
||||
|
||||
fun take(f: ((String) -> String) -> Inv<String>) {}
|
||||
fun take(f: ((String) -> String) -> Inv<String>) {}
|
||||
|
||||
@@ -11,6 +11,6 @@ public class A {
|
||||
// FILE: main.kt
|
||||
|
||||
fun foo(a: A) {
|
||||
a.<!AMBIGUITY!>foo<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><String>() }
|
||||
A.<!AMBIGUITY!>bar<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><String>() }
|
||||
a.<!AMBIGUITY!>foo<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
|
||||
A.<!AMBIGUITY!>bar<!>() <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user