diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JvmCodegenUtil.java b/compiler/backend/src/org/jetbrains/jet/codegen/JvmCodegenUtil.java index 91f34a84d66..af81fc9e514 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JvmCodegenUtil.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JvmCodegenUtil.java @@ -115,7 +115,7 @@ public class JvmCodegenUtil { } private static boolean rawTypeMatches(JetType type, ClassifierDescriptor classifier) { - return type.getConstructor().getDeclarationDescriptor().getOriginal() == classifier.getOriginal(); + return type.getConstructor().equals(classifier.getTypeConstructor()); } private static boolean isCallInsideSameClassAsDeclared(@NotNull CallableMemberDescriptor descriptor, @NotNull CodegenContext context) { diff --git a/compiler/testData/diagnostics/tests/multimodule/duplicateClass/collectionMethodStub.kt b/compiler/testData/diagnostics/tests/multimodule/duplicateClass/collectionMethodStub.kt new file mode 100644 index 00000000000..db49999ce82 --- /dev/null +++ b/compiler/testData/diagnostics/tests/multimodule/duplicateClass/collectionMethodStub.kt @@ -0,0 +1,20 @@ +// FILE: f1.kt + +package kotlin + +class Unit + +// FILE: f2.kt + +class C: MutableIterator { + override fun remove(): Unit { + throw UnsupportedOperationException() + } + override fun next(): Int { + throw UnsupportedOperationException() + } + override fun hasNext(): Boolean { + throw UnsupportedOperationException() + } + +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 1af3567b7d5..8520c6b6f98 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -5372,6 +5372,11 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/multimodule/duplicateClass"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("collectionMethodStub.kt") + public void testCollectionMethodStub() throws Exception { + doTest("compiler/testData/diagnostics/tests/multimodule/duplicateClass/collectionMethodStub.kt"); + } + @TestMetadata("differentGenericArguments.kt") public void testDifferentGenericArguments() throws Exception { doTest("compiler/testData/diagnostics/tests/multimodule/duplicateClass/differentGenericArguments.kt");