Reflection: add API for declaration modifiers
#KT-10447 Fixed
This commit is contained in:
@@ -99,6 +99,21 @@ public abstract class CallableReference implements KCallable {
|
||||
return getReflected().callBy(args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinal() {
|
||||
return getReflected().isFinal();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpen() {
|
||||
return getReflected().isOpen();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAbstract() {
|
||||
return getReflected().isAbstract();
|
||||
}
|
||||
|
||||
public KCallable compute() {
|
||||
if (reflected == null) {
|
||||
reflected = computeReflected();
|
||||
|
||||
@@ -48,6 +48,27 @@ class ClassReference(override val jClass: Class<*>) : KClass<Any>, ClassBasedDec
|
||||
override val supertypes: List<KType>
|
||||
get() = error()
|
||||
|
||||
override val isFinal: Boolean
|
||||
get() = error()
|
||||
|
||||
override val isOpen: Boolean
|
||||
get() = error()
|
||||
|
||||
override val isAbstract: Boolean
|
||||
get() = error()
|
||||
|
||||
override val isSealed: Boolean
|
||||
get() = error()
|
||||
|
||||
override val isData: Boolean
|
||||
get() = error()
|
||||
|
||||
override val isInner: Boolean
|
||||
get() = error()
|
||||
|
||||
override val isCompanion: Boolean
|
||||
get() = error()
|
||||
|
||||
private fun error(): Nothing = throw KotlinReflectionNotSupportedError()
|
||||
|
||||
override fun equals(other: Any?) =
|
||||
|
||||
@@ -84,6 +84,51 @@ public class FunctionReference extends FunctionImpl implements KFunction {
|
||||
return getReflected().callBy(args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinal() {
|
||||
return getReflected().isFinal();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpen() {
|
||||
return getReflected().isOpen();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAbstract() {
|
||||
return getReflected().isAbstract();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInline() {
|
||||
return getReflected().isInline();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isExternal() {
|
||||
return getReflected().isExternal();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOperator() {
|
||||
return getReflected().isOperator();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInfix() {
|
||||
return getReflected().isInfix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTailrec() {
|
||||
return getReflected().isTailrec();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSuspend() {
|
||||
return getReflected().isSuspend();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) return true;
|
||||
|
||||
@@ -19,6 +19,21 @@ package kotlin.jvm.internal;
|
||||
import kotlin.reflect.KProperty;
|
||||
|
||||
public abstract class PropertyReference extends CallableReference implements KProperty {
|
||||
@Override
|
||||
protected KProperty getReflected() {
|
||||
return (KProperty) super.getReflected();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLateinit() {
|
||||
return getReflected().isLateinit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConst() {
|
||||
return getReflected().isConst();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == this) return true;
|
||||
|
||||
Reference in New Issue
Block a user