From 749d0c4a52ae04d2856f2a04c4e9a4c7fbd577e1 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 6 Jul 2015 14:44:56 +0300 Subject: [PATCH] Minor, simplify KProperty.accessible --- .../src/kotlin/reflect/jvm/properties.kt | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/properties.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/properties.kt index 0996cabb747..d3b40bc1b31 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/properties.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/properties.kt @@ -17,8 +17,8 @@ package kotlin.reflect.jvm import kotlin.reflect.KProperty -import kotlin.reflect.jvm.internal.KProperty1Impl -import kotlin.reflect.jvm.internal.KMutableProperty1Impl +import kotlin.reflect.jvm.internal.KMutablePropertyImpl +import kotlin.reflect.jvm.internal.KPropertyImpl /** * Provides a way to suppress JVM access checks for a property. @@ -34,29 +34,27 @@ import kotlin.reflect.jvm.internal.KMutableProperty1Impl public var KProperty.accessible: Boolean get() { return when (this) { - is KMutableProperty1Impl<*, R> -> + is KMutablePropertyImpl -> javaField?.isAccessible() ?: true && javaGetter?.isAccessible() ?: true && javaSetter?.isAccessible() ?: true - is KProperty1Impl<*, R> -> + is KPropertyImpl -> javaField?.isAccessible() ?: true && javaGetter?.isAccessible() ?: true - else -> { - // Non-member properties always have public visibility on JVM, thus accessible has no effect on them - true - } + else -> throw UnsupportedOperationException("Unknown property: $this ($javaClass)") } } set(value) { when (this) { - is KMutableProperty1Impl<*, R> -> { + is KMutablePropertyImpl -> { javaField?.setAccessible(value) javaGetter?.setAccessible(value) javaSetter?.setAccessible(value) } - is KProperty1Impl<*, R> -> { + is KPropertyImpl -> { javaField?.setAccessible(value) javaGetter?.setAccessible(value) } + else -> throw UnsupportedOperationException("Unknown property: $this ($javaClass)") } }