FIR checker: skip error named reference if receiver is unresolved
Currently, FIR reports errors caused by previous resolution failure. For example with unresolved `a` and `b` in code `a.b`, both `a` and `b` are highlighted. FE1.0 only highlights `a` since it's the root cause. This change applies this heuristics when reporting FirDiagnostics.
This commit is contained in:
committed by
Dmitriy Novozhilov
parent
d6907222cd
commit
fb14b03824
+1
-1
@@ -28,7 +28,7 @@ open class A {
|
||||
class Simple: A() {
|
||||
init {
|
||||
Y().A_Y()
|
||||
<!UNRESOLVED_REFERENCE!>Z<!>().<!UNRESOLVED_REFERENCE!>A_C_Z<!>()
|
||||
<!UNRESOLVED_REFERENCE!>Z<!>().A_C_Z()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -42,6 +42,6 @@ class Y: C() {
|
||||
init {
|
||||
Y().A_Y()
|
||||
|
||||
<!UNRESOLVED_REFERENCE!>Z<!>().<!UNRESOLVED_REFERENCE!>A_C_Z<!>()
|
||||
<!UNRESOLVED_REFERENCE!>Z<!>().A_C_Z()
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -5,11 +5,11 @@ package a
|
||||
|
||||
fun foo() {
|
||||
val b : <!UNRESOLVED_REFERENCE!>B<!> = <!UNRESOLVED_REFERENCE!>B<!>() //only B() is unresolved, but in ": B" and "B.foo()" B should also be unresolved
|
||||
<!UNRESOLVED_REFERENCE!>B<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
|
||||
<!UNRESOLVED_REFERENCE!>B<!>.foo()
|
||||
|
||||
<!UNRESOLVED_REFERENCE!>P<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
|
||||
<!UNRESOLVED_REFERENCE!>P<!>.foo()
|
||||
|
||||
<!UNRESOLVED_REFERENCE!>M<!>.<!UNRESOLVED_REFERENCE!>bar<!>()
|
||||
<!UNRESOLVED_REFERENCE!>M<!>.bar()
|
||||
}
|
||||
|
||||
class A() {
|
||||
|
||||
Reference in New Issue
Block a user