Extract interface out of NameResolver

This commit is contained in:
Alexander Udalov
2015-09-16 23:36:48 +03:00
parent da68c4d9ee
commit 5477570066
7 changed files with 121 additions and 80 deletions
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext
import org.jetbrains.kotlin.serialization.deserialization.MemberDeserializer
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
import org.jetbrains.kotlin.serialization.deserialization.NameResolverImpl
import org.jetbrains.kotlin.serialization.jvm.BitEncoding
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBufUtil
import kotlin.jvm.internal.KotlinCallable
@@ -37,7 +37,7 @@ import kotlin.reflect.jvm.internal.getOrCreateModule
public fun <R> Function<R>.reflect(): KFunction<R>? {
val callable = javaClass.getAnnotation(KotlinCallable::class.java) ?: return null
val input = BitEncoding.decodeBytes(callable.data).inputStream()
val nameResolver = NameResolver.read(input)
val nameResolver = NameResolverImpl.read(input)
val proto = ProtoBuf.Callable.parseFrom(input, JvmProtoBufUtil.EXTENSION_REGISTRY)
val moduleData = javaClass.getOrCreateModule()
val context = DeserializationContext(moduleData.deserialization, nameResolver, moduleData.module,