diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinLightMethodForDeclaration.kt b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinLightMethodForDeclaration.kt index 152147f86dd..8ba92afb914 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinLightMethodForDeclaration.kt +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/KotlinLightMethodForDeclaration.kt @@ -112,7 +112,10 @@ public class KotlinLightMethodForDeclaration( override fun getUseScope(): SearchScope = origin.getUseScope() override fun equals(other: Any?): Boolean = - other is KotlinLightMethodForDeclaration && getName() == other.getName() && origin == other.origin + other is KotlinLightMethodForDeclaration && + getName() == other.getName() && + origin == other.origin && + getContainingClass() == other.getContainingClass() - override fun hashCode(): Int = getName().hashCode() * 31 + origin.hashCode() + override fun hashCode(): Int = (getName().hashCode() * 31 + origin.hashCode()) * 31 + getContainingClass()!!.hashCode() } diff --git a/idea/testData/kotlinAndJavaChecker/ImplementedMethodsFromTraits.java b/idea/testData/kotlinAndJavaChecker/ImplementedMethodsFromTraits.java new file mode 100644 index 00000000000..4bf6713f25c --- /dev/null +++ b/idea/testData/kotlinAndJavaChecker/ImplementedMethodsFromTraits.java @@ -0,0 +1,6 @@ +class C { + public C(B b, A a) { + a.foo(); + b.foo(); + } +} diff --git a/idea/testData/kotlinAndJavaChecker/ImplementedMethodsFromTraits.kt b/idea/testData/kotlinAndJavaChecker/ImplementedMethodsFromTraits.kt new file mode 100644 index 00000000000..3b10d43d742 --- /dev/null +++ b/idea/testData/kotlinAndJavaChecker/ImplementedMethodsFromTraits.kt @@ -0,0 +1,6 @@ +public trait A { + public fun foo() {} +} + +public class B: A { +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/checkers/KotlinAndJavaCheckerTest.java b/idea/tests/org/jetbrains/jet/checkers/KotlinAndJavaCheckerTest.java index bb25b67789c..909c6fd9fe0 100644 --- a/idea/tests/org/jetbrains/jet/checkers/KotlinAndJavaCheckerTest.java +++ b/idea/tests/org/jetbrains/jet/checkers/KotlinAndJavaCheckerTest.java @@ -69,4 +69,8 @@ public class KotlinAndJavaCheckerTest extends KotlinDaemonAnalyzerTestCase { public void testUseKotlinSubclassesOfMappedTypes() throws Exception { doTest(true, true, "UseKotlinSubclassesOfMappedTypes.java", "UseKotlinSubclassesOfMappedTypes.kt"); } + + public void testImplementedMethodsFromTraits() throws Exception { + doTest(true, true, "ImplementedMethodsFromTraits.java", "ImplementedMethodsFromTraits.kt"); + } }