diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt index bfd73e258ed..fbeea968b30 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassDescriptor.kt @@ -61,6 +61,10 @@ class LazyJavaClassDescriptor( init { c.components.javaResolverCache.recordClass(jClass, this) + + assert(jClass.lightClassOriginKind == null) { + "Creating LazyJavaClassDescriptor for light class $jClass" + } } private val kind = when { diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt index 7162e642f82..2c51467d299 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageScope.kt @@ -64,6 +64,17 @@ class LazyJavaPackageScope( is KotlinClassLookupResult.SyntheticClass -> null is KotlinClassLookupResult.NotFound -> { val javaClass = request.javaClass ?: c.components.finder.findClass(classId) + + if (javaClass?.lightClassOriginKind == LightClassOriginKind.BINARY) { + throw IllegalStateException( + "Couldn't find kotlin binary class for light class created by kotlin binary file\n" + + "JavaClass: $javaClass\n" + + "ClassId: $classId\n" + + "findKotlinClass(JavaClass) = ${c.components.kotlinClassFinder.findKotlinClass(javaClass)}\n" + + "findKotlinClass(ClassId) = ${c.components.kotlinClassFinder.findKotlinClass(classId)}\n" + ) + } + javaClass?.let { it -> LazyJavaClassDescriptor(c, ownerDescriptor, it) }