Remove hack in JavaClassDataFinder
This commit is contained in:
+1
-1
@@ -34,7 +34,7 @@ public class LazyJavaPackageFragmentProvider(
|
||||
private val _module: ModuleDescriptor
|
||||
) : JavaPackageFragmentProvider {
|
||||
|
||||
val c = LazyJavaResolverContext(
|
||||
private val c = LazyJavaResolverContext(
|
||||
this,
|
||||
FragmentClassResolver(),
|
||||
outerContext.storageManager,
|
||||
|
||||
+3
-15
@@ -18,30 +18,18 @@ package org.jetbrains.jet.lang.resolve.kotlin
|
||||
|
||||
import org.jetbrains.jet.descriptors.serialization.ClassId
|
||||
import org.jetbrains.jet.descriptors.serialization.ClassDataFinder
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName
|
||||
import org.jetbrains.jet.lang.resolve.name.Name
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils.kotlinFqNameToJavaFqName
|
||||
import java.util.Collections
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider
|
||||
import org.jetbrains.jet.descriptors.serialization.ClassData
|
||||
import org.jetbrains.jet.descriptors.serialization.JavaProtoBufUtil
|
||||
import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedClassDescriptor
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader
|
||||
|
||||
//TODO: correct dependencies
|
||||
public class JavaClassDataFinder(
|
||||
private val javaDescriptorResolver: JavaDescriptorResolver,
|
||||
private val javaPackageFragmentProvider: JavaPackageFragmentProvider
|
||||
private val kotlinClassFinder: KotlinClassFinder,
|
||||
private val deserializedDescriptorResolver: DeserializedDescriptorResolver
|
||||
) : ClassDataFinder {
|
||||
|
||||
override fun findClassData(classId: ClassId): ClassData? {
|
||||
val lazyJavaPackageFragmentProvider = javaDescriptorResolver.getPackageFragmentProvider() as LazyJavaPackageFragmentProvider
|
||||
val c = lazyJavaPackageFragmentProvider.c
|
||||
val kotlinJvmBinaryClass = c.kotlinClassFinder.findKotlinClass(kotlinFqNameToJavaFqName(classId.asSingleFqName())) ?: return null
|
||||
val deserializedDescriptorResolver = c.deserializedDescriptorResolver
|
||||
val kotlinJvmBinaryClass = kotlinClassFinder.findKotlinClass(kotlinFqNameToJavaFqName(classId.asSingleFqName())) ?: return null
|
||||
val data = deserializedDescriptorResolver.readData(kotlinJvmBinaryClass, KotlinClassHeader.Kind.CLASS) ?: return null
|
||||
return JavaProtoBufUtil.readClassDataFrom(data)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user