130 lines
1.8 KiB
Plaintext
130 lines
1.8 KiB
Plaintext
//FILE:a.kt
|
|
//KT-900 Inaccessible class should be unresolved
|
|
|
|
package a
|
|
|
|
fun foo() {
|
|
val <!UNUSED_VARIABLE!>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<!>.foo()
|
|
|
|
<!UNRESOLVED_REFERENCE!>P<!>.foo()
|
|
|
|
<!UNRESOLVED_REFERENCE!>M<!>.bar()
|
|
}
|
|
|
|
class A() {
|
|
class object {
|
|
class B() {
|
|
class object {
|
|
fun foo() {}
|
|
}
|
|
}
|
|
|
|
object P {
|
|
fun foo() {}
|
|
}
|
|
}
|
|
}
|
|
|
|
object N {
|
|
object M {
|
|
fun bar() {}
|
|
}
|
|
}
|
|
|
|
//FILE:b.kt
|
|
package b
|
|
|
|
import N.M
|
|
import A.P
|
|
import b.A.B
|
|
|
|
fun foo() {
|
|
val <!UNUSED_VARIABLE!>b<!> : B = B()
|
|
B.foo()
|
|
|
|
P.foo()
|
|
|
|
M.bar()
|
|
}
|
|
|
|
class A() {
|
|
class object {
|
|
class B() {
|
|
class object {
|
|
fun foo() {}
|
|
}
|
|
}
|
|
|
|
object P {
|
|
fun foo() {}
|
|
}
|
|
}
|
|
}
|
|
|
|
object N {
|
|
object M {
|
|
fun bar() {}
|
|
}
|
|
}
|
|
|
|
//FILE:c.kt
|
|
// import all members from class object
|
|
package c
|
|
|
|
import A.*
|
|
import M.*
|
|
|
|
fun foo() {
|
|
val <!UNUSED_VARIABLE!>b<!>: B = B()
|
|
var <!UNUSED_VARIABLE!>r<!>: R = R()
|
|
}
|
|
|
|
class A() {
|
|
class object {
|
|
class B() {
|
|
class object {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
object M {
|
|
fun foo() {}
|
|
class R() {}
|
|
}
|
|
|
|
//FILE:d.kt
|
|
package d
|
|
|
|
//import from objects before properties resolve
|
|
|
|
import A.*
|
|
import M.R
|
|
import M.R.<!CANNOT_BE_IMPORTED!>bar<!>
|
|
import M.T
|
|
import M.Y
|
|
|
|
var r: T = T()
|
|
val y: T = Y
|
|
|
|
fun f() {
|
|
<!UNRESOLVED_REFERENCE!>bar<!>()
|
|
R.bar()
|
|
B.foo()
|
|
}
|
|
|
|
object M {
|
|
object R {
|
|
fun bar() {}
|
|
}
|
|
open class T() {}
|
|
|
|
object Y : T() {}
|
|
}
|
|
|
|
object A {
|
|
object B {
|
|
fun foo() {}
|
|
}
|
|
} |