Files
kotlin-fork/compiler/testData/diagnostics/tests/scopes/visibility.fir.kt
T
Kirill Rakhman 5186ba80e2 [FIR] Check for setter visibility in resolution stage
This is required for the following commit where candidates from the
original scope in presence of smart cast will not be ignored if they're
the same symbol.
2023-12-21 13:29:00 +00:00

96 lines
1.5 KiB
Kotlin
Vendored

// !DIAGNOSTICS: -UNUSED_PARAMETER
//FILE:a.kt
package test_visibility
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> class ProtectedClass
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> interface ProtectedTrait
<!WRONG_MODIFIER_TARGET!>protected<!> val protected_val : Int = 4
<!WRONG_MODIFIER_TARGET!>protected<!> fun protected_fun() {}
private val private_val : Int = 4
private fun private_fun() {}
val internal_val : Int = 34
fun internal_fun() {}
fun test1() {
private_fun();
}
class Y {
fun test2() {
private_fun();
}
}
class A {
private val i = 23
private val v: B = B()
private fun f(i: Int): B = B()
fun test() {
doSmth(i)
}
}
class B {
fun bMethod() {}
}
fun test3(a: A) {
a.<!INVISIBLE_REFERENCE!>v<!> //todo .bMethod()
a.<!INVISIBLE_REFERENCE!>f<!>(0, 1) //todo .bMethod()
}
interface T
open class C : T {
protected var i : Int = 34
fun test5() {
doSmth(i)
}
}
fun test4(c: C) {
c.<!INVISIBLE_REFERENCE!>i<!>++
}
class D : C() {
val j = i
fun test6() {
doSmth(i)
}
}
class E : C() {
fun test7() {
doSmth(i)
}
}
class F : C() {
fun test8(c: C) {
doSmth(c.<!INVISIBLE_REFERENCE!>i<!>)
}
}
class G : T {
fun test8(c: C) {
doSmth(c.<!INVISIBLE_REFERENCE!>i<!>)
}
}
fun doSmth(i: Int) = i
//FILE:b.kt
package test_visibility2
import test_visibility.*
fun test() {
internal_fun()
<!INVISIBLE_REFERENCE!>private_fun<!>()
}