diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/LazyJavaPackageFragmentProvider.kt b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/LazyJavaPackageFragmentProvider.kt index cb2299881b6..5a4a65fa7d6 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/LazyJavaPackageFragmentProvider.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/LazyJavaPackageFragmentProvider.kt @@ -34,7 +34,7 @@ public class LazyJavaPackageFragmentProvider( private val _module: ModuleDescriptor ) : JavaPackageFragmentProvider { - private val c = LazyJavaResolverContext( + val c = LazyJavaResolverContext( this, FragmentClassResolver(), outerContext.storageManager, diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/JavaDescriptorFinder.kt b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/JavaDescriptorFinder.kt index 6963eaecde1..8d0b97028ff 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/JavaDescriptorFinder.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/JavaDescriptorFinder.kt @@ -26,14 +26,19 @@ import org.jetbrains.jet.lang.resolve.name.Name import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolver 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 public class JavaDescriptorFinder( - private val javaDescriptorResolver: DependencyClassByQualifiedNameResolver, + private val javaDescriptorResolver: JavaDescriptorResolver, private val javaPackageFragmentProvider: JavaPackageFragmentProvider ) : DescriptorFinder { override fun findClass(classId: ClassId): ClassDescriptor? { - return javaDescriptorResolver.resolveClass(kotlinFqNameToJavaFqName(classId.asSingleFqName())) + val lazyJavaPackageFragmentProvider = javaDescriptorResolver.getPackageFragmentProvider() as LazyJavaPackageFragmentProvider + val c = lazyJavaPackageFragmentProvider.c + val kotlinJvmBinaryClass = c.kotlinClassFinder.findKotlinClass(kotlinFqNameToJavaFqName(classId.asSingleFqName())) ?: return null + return lazyJavaPackageFragmentProvider.resolveKotlinBinaryClass(kotlinJvmBinaryClass) } override fun getClassNames(packageName: FqName): Collection {