Resolve extension calls on class objects

#KT-3470 Fixed
This commit is contained in:
Alexander Udalov
2013-11-12 16:36:25 +04:00
parent 838c408e68
commit e2622b5dbb
10 changed files with 97 additions and 15 deletions
@@ -0,0 +1,19 @@
trait Tr
class A { class object }
class B { class object : Tr }
fun Any.f1() {}
fun Any?.f2() {}
fun Tr.f3() {}
fun Tr?.f4() {}
fun A.f5() {}
fun test() {
A.f1()
A.f2()
B.f3()
B.f4()
A.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>f5<!>()
B.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>f5<!>()
}
@@ -0,0 +1,7 @@
class A {
class object {
fun foo() = toString()
}
}
val a = A.toString()
@@ -0,0 +1,11 @@
// FILE: A.java
public class A {
public static void foo() {}
public static class Nested {}
}
// FILE: B.kt
fun Any?.bar() = 42
fun f1() = A.<!UNRESOLVED_REFERENCE!>bar<!>()
fun f2() = A.Nested.<!UNRESOLVED_REFERENCE!>bar<!>()