Report INVISIBLE_MEMBER on private class object usage

This commit is contained in:
Alexander Udalov
2013-10-18 17:28:27 +04:00
parent 94deb21551
commit 57aa355b05
5 changed files with 90 additions and 2 deletions
@@ -0,0 +1,48 @@
//FILE:a.kt
package a
class A {
class object {
fun foo() {}
}
}
private class B {
class object {
fun bar() {}
}
}
class C {
private class object {
fun baz() {}
}
}
private class D {
private class object {
fun quux() {}
}
}
//FILE:b.kt
package b
import a.A
import a.<!INVISIBLE_REFERENCE!>B<!>
import a.C
import a.<!INVISIBLE_REFERENCE!>D<!>
fun test() {
f(A)
f(<!INVISIBLE_MEMBER!>B<!>)
f(<!INVISIBLE_MEMBER!>C<!>)
f(<!INVISIBLE_MEMBER!>D<!>)
A.foo()
<!INVISIBLE_MEMBER!>B<!>.<!INVISIBLE_MEMBER!>bar<!>()
<!INVISIBLE_MEMBER!>C<!>.<!INVISIBLE_MEMBER!>baz<!>()
<!INVISIBLE_MEMBER!>D<!>.<!INVISIBLE_MEMBER!>quux<!>()
}
fun f(<!UNUSED_PARAMETER!>unused<!>: Any) {}