[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:
Dmitriy Novozhilov
2020-07-22 16:40:14 +03:00
committed by Mikhail Glukhikh
parent 5c0528b61e
commit f283f2db43
365 changed files with 1400 additions and 1451 deletions
@@ -17,11 +17,11 @@ class C1
// FILE: 2.kt
package pp
@A(<!INAPPLICABLE_CANDIDATE!>foo<!>)
@A(<!HIDDEN!>foo<!>)
fun f2() {}
@A(<!INAPPLICABLE_CANDIDATE!>foo<!>)
@A(<!HIDDEN!>foo<!>)
val p2 = ""
@A(<!INAPPLICABLE_CANDIDATE!>foo<!>)
@A(<!HIDDEN!>foo<!>)
class C2
@@ -30,20 +30,20 @@ package a
fun test() {
val y = makeA()
y.bar()
<!INAPPLICABLE_CANDIDATE!>foo<!>()
<!HIDDEN!>foo<!>()
val u : A = <!INAPPLICABLE_CANDIDATE!>A<!>()
val u : A = <!HIDDEN!>A<!>()
val z = <!INAPPLICABLE_CANDIDATE!>x<!>
<!INAPPLICABLE_CANDIDATE!>x<!> = 30
val z = <!HIDDEN!>x<!>
<!HIDDEN!>x<!> = 30
val po = <!INAPPLICABLE_CANDIDATE!>PO<!>
val po = PO
val v = xx
xx = 40
}
class B : <!EXPOSED_SUPER_CLASS, INAPPLICABLE_CANDIDATE!>A<!>() {}
class B : <!EXPOSED_SUPER_CLASS, HIDDEN!>A<!>() {}
class Q {
class W {