Reflection: add KVisibility, KClass.visibility, KCallable.visibility

This commit is contained in:
Alexander Udalov
2016-07-12 19:29:12 +03:00
parent 7e317f7a7c
commit d78988a12a
13 changed files with 229 additions and 0 deletions
@@ -0,0 +1,33 @@
// WITH_REFLECT
// FILE: J.java
class J {
protected class C {}
protected static class D {}
void foo() {}
protected void bar() {}
protected static void baz() {}
}
// FILE: K.kt
import kotlin.test.assertEquals
fun box(): String {
// Package-private class
assertEquals(null, J::class.visibility)
// Protected+package class
assertEquals(null, J.C::class.visibility)
// Protected static class
assertEquals(null, J.D::class.visibility)
// Package-private method
assertEquals(null, J::foo.visibility)
// Protected+package method
assertEquals(null, J::bar.visibility)
// Protected static method
assertEquals(null, J::baz.visibility)
return "OK"
}