[FIR] Handle unresolved callable references more correctly

This commit is contained in:
Mikhail Glukhikh
2020-01-21 17:35:50 +03:00
parent 97d8f3fa4b
commit e644edfe84
38 changed files with 105 additions and 90 deletions
@@ -115,17 +115,17 @@ class C : O.B() {
val n = FromCompanionC::foo
// INVISIBLE: direct superclasses themselves.
val a = <!UNRESOLVED_REFERENCE!>A<!>::foo
val b = <!UNRESOLVED_REFERENCE!>A<!>::foo
val a = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>A<!>::foo<!>
val b = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>A<!>::foo<!>
// DEPRECATED: Classifiers from companions of direct superclasses
val e = FromCompanionA::foo
val f = FromCompanionB::foo
// INVISIBLE: "cousin" supertypes themselves
val g = <!UNRESOLVED_REFERENCE!>Alpha<!>::foo
val h = <!UNRESOLVED_REFERENCE!>Beta<!>::foo
val i = <!UNRESOLVED_REFERENCE!>Gamma<!>::foo
val g = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>Alpha<!>::foo<!>
val h = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>Beta<!>::foo<!>
val i = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>Gamma<!>::foo<!>
// DEPRECATED: classifiers from "cousin" superclasses
val k = FromAlpha::foo
@@ -133,9 +133,9 @@ class C : O.B() {
val m = FromGamma::foo
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
val o = <!UNRESOLVED_REFERENCE!>FromCompanionAlpha<!>::foo
val p = <!UNRESOLVED_REFERENCE!>FromCompanionBeta<!>::foo
val q = <!UNRESOLVED_REFERENCE!>FromCompanionGamma<!>::foo
val o = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>FromCompanionAlpha<!>::foo<!>
val p = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>FromCompanionBeta<!>::foo<!>
val q = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>FromCompanionGamma<!>::foo<!>
// DEPRECATED: Classifiers from supertypes of our own companion
val r = FromDelta::foo
@@ -115,17 +115,17 @@ class C : O.B() {
val n = FromCompanionC::foo
// INVISIBLE: direct superclasses themselves.
val a = <!UNRESOLVED_REFERENCE!>A<!>::foo
val b = <!UNRESOLVED_REFERENCE!>A<!>::foo
val a = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>A<!>::foo<!>
val b = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>A<!>::foo<!>
// DEPRECATED: Classifiers from companions of direct superclasses
val e = FromCompanionA::foo
val f = FromCompanionB::foo
// INVISIBLE: "cousin" supertypes themselves
val g = <!UNRESOLVED_REFERENCE!>Alpha<!>::foo
val h = <!UNRESOLVED_REFERENCE!>Beta<!>::foo
val i = <!UNRESOLVED_REFERENCE!>Gamma<!>::foo
val g = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>Alpha<!>::foo<!>
val h = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>Beta<!>::foo<!>
val i = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>Gamma<!>::foo<!>
// DEPRECATED: classifiers from "cousin" superclasses
val k = FromAlpha::foo
@@ -133,9 +133,9 @@ class C : O.B() {
val m = FromGamma::foo
// INVISIBLE: We don't see classifiers from companions of "cousin" superclasses
val o = <!UNRESOLVED_REFERENCE!>FromCompanionAlpha<!>::foo
val p = <!UNRESOLVED_REFERENCE!>FromCompanionBeta<!>::foo
val q = <!UNRESOLVED_REFERENCE!>FromCompanionGamma<!>::foo
val o = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>FromCompanionAlpha<!>::foo<!>
val p = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>FromCompanionBeta<!>::foo<!>
val q = <!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>FromCompanionGamma<!>::foo<!>
// DEPRECATED: Classifiers from supertypes of our own companion
val r = FromDelta::foo
@@ -119,8 +119,8 @@ class C : O.B() {
val b = O.A::foo
// DEPRECATED: Classifiers from companions of direct superclasses
val e = O.A.<!AMBIGUITY!>Companion<!>.<!UNRESOLVED_REFERENCE!>FromCompanionA<!>::foo
val f = O.B.<!AMBIGUITY!>Companion<!>.<!UNRESOLVED_REFERENCE!>FromCompanionB<!>::foo
val e = <!UNRESOLVED_REFERENCE!>O.A.<!AMBIGUITY!>Companion<!>.<!UNRESOLVED_REFERENCE!>FromCompanionA<!>::foo<!>
val f = <!UNRESOLVED_REFERENCE!>O.B.<!AMBIGUITY!>Companion<!>.<!UNRESOLVED_REFERENCE!>FromCompanionB<!>::foo<!>
// INVISIBLE: "cousin" supertypes themselves
val g = O.Alpha::foo
@@ -119,8 +119,8 @@ class C : O.B() {
val b = O.A::foo
// DEPRECATED: Classifiers from companions of direct superclasses
val e = O.A.<!AMBIGUITY!>Companion<!>.<!UNRESOLVED_REFERENCE!>FromCompanionA<!>::foo
val f = O.B.<!AMBIGUITY!>Companion<!>.<!UNRESOLVED_REFERENCE!>FromCompanionB<!>::foo
val e = <!UNRESOLVED_REFERENCE!>O.A.<!AMBIGUITY!>Companion<!>.<!UNRESOLVED_REFERENCE!>FromCompanionA<!>::foo<!>
val f = <!UNRESOLVED_REFERENCE!>O.B.<!AMBIGUITY!>Companion<!>.<!UNRESOLVED_REFERENCE!>FromCompanionB<!>::foo<!>
// INVISIBLE: "cousin" supertypes themselves
val g = O.Alpha::foo