[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
+8
-8
@@ -22,24 +22,24 @@ import j.JavaProtected
|
||||
import j.JavaPackageLocal
|
||||
|
||||
class A {
|
||||
val p1 = JavaPackageLocal.<!INAPPLICABLE_CANDIDATE!>javaPPackage<!>
|
||||
val p2 = JavaProtected.<!INAPPLICABLE_CANDIDATE!>javaPProtectedStatic<!>
|
||||
val p3 = JavaProtected().<!INAPPLICABLE_CANDIDATE!>javaPProtectedPackage<!>
|
||||
val p1 = JavaPackageLocal.<!HIDDEN!>javaPPackage<!>
|
||||
val p2 = JavaProtected.<!HIDDEN!>javaPProtectedStatic<!>
|
||||
val p3 = JavaProtected().<!HIDDEN!>javaPProtectedPackage<!>
|
||||
|
||||
fun test() {
|
||||
JavaProtected.<!INAPPLICABLE_CANDIDATE!>javaMProtectedStatic<!>()
|
||||
JavaPackageLocal.<!INAPPLICABLE_CANDIDATE!>javaMPackage<!>()
|
||||
JavaProtected.<!HIDDEN!>javaMProtectedStatic<!>()
|
||||
JavaPackageLocal.<!HIDDEN!>javaMPackage<!>()
|
||||
}
|
||||
}
|
||||
|
||||
class B : JavaProtected() {
|
||||
val p1 = JavaPackageLocal.<!INAPPLICABLE_CANDIDATE!>javaPPackage<!>
|
||||
val p1 = JavaPackageLocal.<!HIDDEN!>javaPPackage<!>
|
||||
val p2 = JavaProtected.javaPProtectedStatic
|
||||
val p3 = javaPProtectedPackage
|
||||
|
||||
fun test() {
|
||||
JavaProtected.javaMProtectedStatic()
|
||||
JavaPackageLocal.<!INAPPLICABLE_CANDIDATE!>javaMPackage<!>()
|
||||
JavaPackageLocal.<!HIDDEN!>javaMPackage<!>()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,4 +59,4 @@ class C {
|
||||
JavaProtected.javaMProtectedStatic()
|
||||
JavaPackageLocal.javaMPackage()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+11
-11
@@ -4,18 +4,18 @@ FILE: k.kt
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val p1: <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]> = Q|j/JavaPackageLocal|.<Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]>#
|
||||
public get(): <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]>
|
||||
public final val p1: R|kotlin/Int| = Q|j/JavaPackageLocal|.<HIDDEN: j/JavaPackageLocal.javaPPackage is invisible>#
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final val p2: <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedStatic]> = Q|j/JavaProtected|.<Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedStatic]>#
|
||||
public get(): <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedStatic]>
|
||||
public final val p2: R|kotlin/Int| = Q|j/JavaProtected|.<HIDDEN: j/JavaProtected.javaPProtectedStatic is invisible>#
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final val p3: <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedPackage]> = R|j/JavaProtected.JavaProtected|().<Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedPackage]>#
|
||||
public get(): <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaProtected.javaPProtectedPackage]>
|
||||
public final val p3: R|kotlin/Int| = R|j/JavaProtected.JavaProtected|().<HIDDEN: j/JavaProtected.javaPProtectedPackage is invisible>#
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
Q|j/JavaProtected|.<Inapplicable(HIDDEN): [j/JavaProtected.javaMProtectedStatic]>#()
|
||||
Q|j/JavaPackageLocal|.<Inapplicable(HIDDEN): [j/JavaPackageLocal.javaMPackage]>#()
|
||||
Q|j/JavaProtected|.<HIDDEN: j/JavaProtected.javaMProtectedStatic is invisible>#()
|
||||
Q|j/JavaPackageLocal|.<HIDDEN: j/JavaPackageLocal.javaMPackage is invisible>#()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,8 +24,8 @@ FILE: k.kt
|
||||
super<R|j/JavaProtected|>()
|
||||
}
|
||||
|
||||
public final val p1: <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]> = Q|j/JavaPackageLocal|.<Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]>#
|
||||
public get(): <ERROR TYPE REF: Inapplicable(HIDDEN): [j/JavaPackageLocal.javaPPackage]>
|
||||
public final val p1: R|kotlin/Int| = Q|j/JavaPackageLocal|.<HIDDEN: j/JavaPackageLocal.javaPPackage is invisible>#
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
public final val p2: R|kotlin/Int| = Q|j/JavaProtected|.R|j/JavaProtected.javaPProtectedStatic|
|
||||
public get(): R|kotlin/Int|
|
||||
@@ -35,7 +35,7 @@ FILE: k.kt
|
||||
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
Q|j/JavaProtected|.R|j/JavaProtected.javaMProtectedStatic|()
|
||||
Q|j/JavaPackageLocal|.<Inapplicable(HIDDEN): [j/JavaPackageLocal.javaMPackage]>#()
|
||||
Q|j/JavaPackageLocal|.<HIDDEN: j/JavaPackageLocal.javaMPackage is invisible>#()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -7,9 +7,9 @@ FILE: K1.kt
|
||||
}
|
||||
public final fun main(k: R|KSub|, vString: R|SuperClass.NestedInSuperClass<kotlin/String>|, vInt: R|SuperClass.NestedInSuperClass<kotlin/Int>|): R|kotlin/Unit| {
|
||||
R|<local>/k|.R|/J1.getImpl|().R|FakeOverride</J1.NestedIImpl.nestedI: R|kotlin/Unit|>|(R|<local>/vString|)
|
||||
R|<local>/k|.R|/J1.getImpl|().<Inapplicable(INAPPLICABLE): [/J1.NestedIImpl.nestedI]>#(R|<local>/vInt|)
|
||||
R|<local>/k|.R|/J1.getImpl|().<Inapplicable(INAPPLICABLE): /J1.NestedIImpl.nestedI>#(R|<local>/vInt|)
|
||||
R|<local>/k|.R|/J1.getNestedSubClass|().R|FakeOverride</J1.NestedSubClass.nested: R|kotlin/Unit|>|(String())
|
||||
R|<local>/k|.R|/J1.getNestedSubClass|().<Inapplicable(INAPPLICABLE): [/J1.NestedSubClass.nested]>#(Int(1))
|
||||
R|<local>/k|.R|/J1.getNestedSubClass|().<Inapplicable(INAPPLICABLE): /J1.NestedSubClass.nested>#(Int(1))
|
||||
}
|
||||
FILE: K2.kt
|
||||
public open class KFirst : R|SuperClass<kotlin/String>|, R|SuperI<kotlin/Int>| {
|
||||
|
||||
+1
-1
@@ -8,5 +8,5 @@ FILE: K1.kt
|
||||
FILE: K2.kt
|
||||
public final fun main(): R|kotlin/Unit| {
|
||||
Q|JavaClass|.R|/JavaClass.baz|(R|/KotlinClass.KotlinClass|())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): [/JavaClass.baz]>#(String())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): /JavaClass.baz>#(String())
|
||||
}
|
||||
|
||||
+2
-2
@@ -9,6 +9,6 @@ FILE: K2.kt
|
||||
public final fun main(): R|kotlin/Unit| {
|
||||
Q|JavaClass|.R|/JavaClass.baz|(R|/KotlinClass.KotlinClass|<R|ft<kotlin/Int, kotlin/Int?>!|>())
|
||||
Q|JavaClass|.R|/JavaClass.baz|(R|/KotlinClass.KotlinClass|<R|kotlin/Int|>())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): [/JavaClass.baz]>#(R|/KotlinClass.KotlinClass|<R|kotlin/String|>())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): [/JavaClass.baz]>#(String())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): /JavaClass.baz>#(R|/KotlinClass.KotlinClass|<R|kotlin/String|>())
|
||||
Q|JavaClass|.<Inapplicable(INAPPLICABLE): /JavaClass.baz>#(String())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user