Files
kotlin-fork/compiler/testData/diagnostics/tests/scopes/visibility.kt
T
Denis Zharkov 935355ad2f Refine isVisible for protected visibility
#KT-7437 Fixed
 #KT-7971 Fixed
 #KT-7051 Fixed
 #KT-6125 Fixed
 #KT-6186 Fixed
2016-03-31 14:51:57 +03:00

96 lines
1.6 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_MEMBER(v; private; 'A')!>v<!> //todo .bMethod()
a.<!INVISIBLE_MEMBER(f; private; 'A')!>f<!>(0, <!TOO_MANY_ARGUMENTS!>1<!>) //todo .bMethod()
}
interface T
open class C : T {
protected var i : Int = 34
fun test5() {
doSmth(i)
}
}
fun test4(c: C) {
c.<!INVISIBLE_MEMBER(i; protected; 'C')!>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_MEMBER!>i<!>)
}
}
class G : T {
fun test8(c: C) {
doSmth(c.<!INVISIBLE_MEMBER(i; protected; 'C')!>i<!>)
}
}
fun doSmth(i: Int) = i
//FILE:b.kt
package test_visibility2
import test_visibility.*
fun test() {
internal_fun()
<!INVISIBLE_MEMBER(private_fun; private; file)!>private_fun<!>()
}