Files
kotlin-fork/compiler/testData/diagnostics/tests/scopes/visibility2.kt
T
Ilya Kirillov 1bbcae5ed2 [FIR] fix resolve contract violation from scopes
We cannot call lazy resolve to STATUS phase from scopes as scopes may be accessed on a STATUS phase or earlier

^KT-54890
^KTIJ-23587 fixed
2023-01-13 21:32:51 +00:00

52 lines
1.3 KiB
Kotlin
Vendored

// !DIAGNOSTICS: -UNUSED_VARIABLE
// JAVAC_EXPECTED_FILE
// WITH_EXTENDED_CHECKERS
//FILE:a.kt
package a
private open class A {
fun bar() {}
}
private fun foo() {}
fun <!EXPOSED_FUNCTION_RETURN_TYPE!>makeA<!>() = A()
private object PO {}
//FILE:b.kt
//+JDK
package b
import a.<!INVISIBLE_REFERENCE("A; private; file")!>A<!>
import a.<!INVISIBLE_REFERENCE("foo; private; file")!>foo<!>
import a.makeA
import a.<!INVISIBLE_REFERENCE("PO; private; file")!>PO<!>
fun test() {
val y = makeA()
y.<!INVISIBLE_MEMBER("A; private; file")!>bar<!>()
<!INVISIBLE_MEMBER("foo; private; file")!>foo<!>()
val u : <!INVISIBLE_REFERENCE("A; private; file")!>A<!> = <!INVISIBLE_MEMBER("A; private; file")!>A<!>()
val a : java.util.Arrays.<!INVISIBLE_REFERENCE("ArrayList; private; 'Arrays'")!>ArrayList<!><Int>;
val po = <!INVISIBLE_MEMBER("PO; private; file")!>PO<!>
}
class B : <!EXPOSED_SUPER_CLASS!><!INVISIBLE_MEMBER("A; private; file"), INVISIBLE_REFERENCE("A; private; file")!>A<!>()<!> {}
class Q {
class W {
fun foo() {
val y = makeA() //assure that 'makeA' is visible
}
}
}
//check that 'toString' can be invoked without specifying return type
class NewClass : java.util.ArrayList<<!PLATFORM_CLASS_MAPPED_TO_KOTLIN!>Integer<!>>() {
public override fun toString() = "a"
}