Implement interpretation of KVisibility class
For now it is interpreted as Wrapper, but maybe further it will be converted to Common
This commit is contained in:
committed by
TeamCityServer
parent
40bf4fafc9
commit
88b5b5f702
+1
-1
@@ -40,7 +40,7 @@ internal abstract class AbstractKPropertyProxy(
|
||||
override val returnType: KType
|
||||
get() = TODO("Not yet implemented")
|
||||
override val visibility: KVisibility?
|
||||
get() = TODO("Not yet implemented")
|
||||
get() = state.irClass.visibility.toKVisibility()
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is AbstractKPropertyProxy) return false
|
||||
|
||||
+2
-1
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.ir.interpreter.proxy.reflection
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.ir.interpreter.IrInterpreter
|
||||
import org.jetbrains.kotlin.ir.interpreter.internalName
|
||||
import org.jetbrains.kotlin.ir.interpreter.proxy.Proxy
|
||||
@@ -39,7 +40,7 @@ internal class KClassProxy(
|
||||
get() = TODO("Not yet implemented")
|
||||
|
||||
override val visibility: KVisibility?
|
||||
get() = TODO("Not yet implemented")
|
||||
get() = state.irClass.visibility.toKVisibility()
|
||||
override val isFinal: Boolean
|
||||
get() = state.irClass.modality == Modality.FINAL
|
||||
override val isOpen: Boolean
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ internal class KFunctionProxy(
|
||||
}
|
||||
|
||||
override val visibility: KVisibility?
|
||||
get() = TODO("Not yet implemented")
|
||||
get() = state.irClass.visibility.toKVisibility()
|
||||
override val isFinal: Boolean
|
||||
get() = state.irFunction is IrSimpleFunction && state.irFunction.modality == Modality.FINAL
|
||||
override val isOpen: Boolean
|
||||
|
||||
+13
@@ -5,14 +5,27 @@
|
||||
|
||||
package org.jetbrains.kotlin.ir.interpreter.proxy.reflection
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.ir.interpreter.IrInterpreter
|
||||
import org.jetbrains.kotlin.ir.interpreter.proxy.Proxy
|
||||
import org.jetbrains.kotlin.ir.interpreter.state.KClassState
|
||||
import org.jetbrains.kotlin.ir.interpreter.state.KFunctionState
|
||||
import org.jetbrains.kotlin.ir.interpreter.state.KPropertyState
|
||||
import org.jetbrains.kotlin.ir.interpreter.state.ReflectionState
|
||||
import kotlin.reflect.KVisibility
|
||||
|
||||
internal interface ReflectionProxy : Proxy {
|
||||
fun DescriptorVisibility.toKVisibility(): KVisibility? {
|
||||
return when (this) {
|
||||
DescriptorVisibilities.PUBLIC -> KVisibility.PUBLIC
|
||||
DescriptorVisibilities.PROTECTED -> KVisibility.PROTECTED
|
||||
DescriptorVisibilities.INTERNAL -> KVisibility.INTERNAL
|
||||
DescriptorVisibilities.PRIVATE -> KVisibility.PRIVATE
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
internal fun ReflectionState.asProxy(interpreter: IrInterpreter): ReflectionProxy {
|
||||
return when (this) {
|
||||
|
||||
Reference in New Issue
Block a user