[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
@@ -5,8 +5,8 @@ annotation class C
enum class D
fun main() {
::A
<!UNRESOLVED_REFERENCE!>::A<!>
::B
::C // KT-3465
::D
<!UNRESOLVED_REFERENCE!>::D<!>
}
@@ -13,4 +13,4 @@ import test.Foo
fun Foo(): String = ""
val f = Foo::bar
val g = Foo::length
val g = <!UNRESOLVED_REFERENCE!>Foo::length<!>
@@ -21,8 +21,8 @@ import first.foo
fun main() {
val x = first.A::foo
first.A::bar
A::baz
<!UNRESOLVED_REFERENCE!>first.A::bar<!>
<!UNRESOLVED_REFERENCE!>A::baz<!>
checkSubtype<KFunction1<A, Unit>>(x)
}
@@ -15,6 +15,6 @@ class A {
fun eat(value: Any) {}
fun main() {
A::extInt
A::extA
<!UNRESOLVED_REFERENCE!>A::extInt<!>
<!UNRESOLVED_REFERENCE!>A::extA<!>
}
@@ -26,7 +26,7 @@ class A {
class B {
fun main() {
::Inner
<!UNRESOLVED_REFERENCE!>::Inner<!>
val y = A::Inner
checkSubtype<KFunction1<A, A.Inner>>(y)
@@ -16,7 +16,7 @@ fun A.main() {
}
fun Int.main() {
::Inner
<!UNRESOLVED_REFERENCE!>::Inner<!>
val y = A::Inner
checkSubtype<KFunction1<A, A.Inner>>(y)
@@ -7,7 +7,7 @@ class A {
}
fun main() {
::Inner
<!UNRESOLVED_REFERENCE!>::Inner<!>
val y = A::Inner
checkSubtype<KFunction1<A, A.Inner>>(y)
@@ -25,7 +25,7 @@ class A {
class B {
fun main() {
::Nested
<!UNRESOLVED_REFERENCE!>::Nested<!>
val y = A::Nested
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><KFunction0<A.Nested>>(y)
@@ -14,7 +14,7 @@ fun A.main() {
}
fun Int.main() {
::Nested
<!UNRESOLVED_REFERENCE!>::Nested<!>
val y = A::Nested
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><KFunction0<A.Nested>>(y)
@@ -4,21 +4,21 @@
class A
fun test1() {
val foo = ::foo
val foo = <!UNRESOLVED_REFERENCE!>::foo<!>
::bar
<!UNRESOLVED_REFERENCE!>::bar<!>
A::bar
<!UNRESOLVED_REFERENCE!>A::bar<!>
<!UNRESOLVED_REFERENCE!>B<!>::bar
<!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>B<!>::bar<!>
}
fun test2() {
fun foo(x: Any) {}
fun foo() {}
<!UNRESOLVED_REFERENCE!>Unresolved<!>::foo
<!INAPPLICABLE_CANDIDATE!>foo<!>(<!UNRESOLVED_REFERENCE!>Unresolved<!>::foo)
<!INAPPLICABLE_CANDIDATE!>foo<!>(<!UNRESOLVED_REFERENCE!>Unresolved<!>::unresolved)
::unresolved
<!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>Unresolved<!>::foo<!>
<!INAPPLICABLE_CANDIDATE!>foo<!>(<!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>Unresolved<!>::foo<!>)
<!INAPPLICABLE_CANDIDATE!>foo<!>(<!UNRESOLVED_REFERENCE!><!UNRESOLVED_REFERENCE!>Unresolved<!>::unresolved<!>)
<!UNRESOLVED_REFERENCE!>::unresolved<!>
}