diff --git a/compiler/testData/cli/jvm/wrongAbiVersion.out b/compiler/testData/cli/jvm/wrongAbiVersion.out index 4ed8ddb01f7..b187d7cf1fb 100644 --- a/compiler/testData/cli/jvm/wrongAbiVersion.out +++ b/compiler/testData/cli/jvm/wrongAbiVersion.out @@ -1,5 +1,5 @@ compiler/testData/cli/jvm/wrongAbiVersionLib/bin/ClassWithWrongAbiVersion.class: error: class 'ClassWithWrongAbiVersion' was compiled with an incompatible version of Kotlin. Its ABI version is -1, expected ABI version is $ABI_VERSION$ -compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/WrongPackage.class: error: class 'wrong/WrongPackage' was compiled with an incompatible version of Kotlin. Its ABI version is -1, expected ABI version is $ABI_VERSION$ +compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/Wrong_packageKt.class: error: class 'wrong/Wrong_packageKt' was compiled with an incompatible version of Kotlin. Its ABI version is -1, expected ABI version is $ABI_VERSION$ compiler/testData/cli/jvm/wrongAbiVersion.kt:4:3: error: unresolved reference: bar bar() ^ diff --git a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/ClassWithWrongAbiVersion.class b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/ClassWithWrongAbiVersion.class index 8e0d4bc08c8..ff9873566e4 100644 Binary files a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/ClassWithWrongAbiVersion.class and b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/ClassWithWrongAbiVersion.class differ diff --git a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/META-INF/main.kotlin_module b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/META-INF/main.kotlin_module new file mode 100644 index 00000000000..85fa31c59fb --- /dev/null +++ b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/META-INF/main.kotlin_module @@ -0,0 +1 @@ +wrong->wrong/Wrong_packageKt diff --git a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/ClassWithInnerLambda$other$1.class b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/ClassWithInnerLambda$other$1.class index 896ff63760d..39f58523039 100644 Binary files a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/ClassWithInnerLambda$other$1.class and b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/ClassWithInnerLambda$other$1.class differ diff --git a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/ClassWithInnerLambda.class b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/ClassWithInnerLambda.class index 7ac96fb92a3..b5d555021b9 100644 Binary files a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/ClassWithInnerLambda.class and b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/ClassWithInnerLambda.class differ diff --git a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/TraitWithDefault$$TImpl.class b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/TraitWithDefault$$TImpl.class index 8e4640ad252..3ddf539b800 100644 Binary files a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/TraitWithDefault$$TImpl.class and b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/TraitWithDefault$$TImpl.class differ diff --git a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/TraitWithDefault.class b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/TraitWithDefault.class index ac6e941f3b7..f7d41776df4 100644 Binary files a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/TraitWithDefault.class and b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/TraitWithDefault.class differ diff --git a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/WrongPackage$wrong-package$0984b5e5.class b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/WrongPackage$wrong-package$0984b5e5.class deleted file mode 100644 index fe19324995c..00000000000 Binary files a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/WrongPackage$wrong-package$0984b5e5.class and /dev/null differ diff --git a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/WrongPackage.class b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/WrongPackage.class index 816be83a03e..af5f5018642 100644 Binary files a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/WrongPackage.class and b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/WrongPackage.class differ diff --git a/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/Wrong_packageKt.class b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/Wrong_packageKt.class new file mode 100644 index 00000000000..62816038963 Binary files /dev/null and b/compiler/testData/cli/jvm/wrongAbiVersionLib/bin/wrong/Wrong_packageKt.class differ diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java index 1996cf0437e..839d08452f7 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/DeserializedDescriptorResolver.java @@ -70,7 +70,7 @@ public final class DeserializedDescriptorResolver { @Nullable public JetScope createKotlinPackageScope(@NotNull PackageFragmentDescriptor descriptor, @NotNull KotlinJvmBinaryClass kotlinClass) { //TODO add assertion from readData(kotlinClass, CLASS); - String[] data = kotlinClass.getClassHeader().getAnnotationData(); + String[] data = readData(kotlinClass, KotlinClassHeader.Kind.FILE_FACADE); if (data != null) { //all classes are included in java scope PackageData packageData = JvmProtoBufUtil.readPackageDataFrom(data); @@ -92,8 +92,12 @@ public final class DeserializedDescriptorResolver { List list = new ArrayList(); for (KotlinJvmBinaryClass callable : packageParts) { JetScope scope = createKotlinPackageScope(descriptor, callable); - assert scope != null : "Can't create scope for " + callable; - list.add(scope); + if (scope != null) { + list.add(scope); + } + } + if (list.isEmpty()) { + return JetScope.Empty.INSTANCE$; } return new DeserializedNewPackageMemberScope(descriptor, list); }